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

Excel/C# - Get worksheet id by name?

我目前有一个作品sheet有几个sheet:
Sheet_Alpha | Sheet2 | Sheet_Beta | Sheet 4 | Sheet 5 | Sheet_Delta

如何根据他们的名字恢复他们的id?然后能够 select 我想要的 sheet : Worksheets.get_Item()

可能吗?我找了一下,没找到可以做的。

谢谢:)

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

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

然后按如下名称访问目标sheet

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

希望对您有所帮助...

查看我的回答: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 );