Excel / C# - 按名称获取工作表ID?

时间:2018-01-31 12:29:58

标签: c# excel interop worksheet

我目前有一张包含多张纸的工作表:
Sheet_Alpha |表2 | Sheet_Beta |表4 |表5 | Sheet_Delta

我如何根据他们的名字恢复他们的身份?然后,我可以选择我想要的工作表:Worksheets.get_Item()

有可能吗?我找了一会儿,发现没什么可做的。

谢谢:)

2 个答案:

答案 0 :(得分:1)

您可以先将有关工作簿所有工作表的信息传输到List,如下所示

string name = "xxx";
List<Worksheet> lstSheet = new List<Worksheet>();
foreach (Worksheet ws in MyBook.Sheets)
{
    lstSheet.Add(ws);
}

然后按名称访问目标表单,如下所示

Worksheet wsToQuery = lstSheet.Find(a => a.Name.Contains(name));

希望它有所帮助...

答案 1 :(得分:0)

请参阅我的回答:Get all worksheet names in plaintext from Excel with C# Interop?

foreach ( Worksheet worksheet in excelWorkbook.Worksheets )
{
   MessageBox.Show( worksheet.Name );
}

你可以使用字典:

Dictionary<string, Worksheet> dict = new Dictionary<string, Worksheet>();
foreach ( Worksheet worksheet in excelWorkbook.Worksheets )
{
   dict.Add( worksheet.Name, worksheet );
}
// accessing the desired worksheet in the dictionary
MessageBox.Show( dict[ "Sheet1" ].Name );