我正在使用VS2010+OfficeInterop2007,试图从5-6页的Excel电子表格中获取一些特定的电子表格名称。我所要做的就是将我需要的那几张电子表格保存在一个以制表符分隔的文本文件中,以便进一步处理。因此,对于我得到的三个电子表格名称,每个名称都有自己的以制表符分隔的文本文件
我可以通过互操作将文件保存为以制表符分隔的格式,但前提是我知道给定的页面名称。我被告知,每个页面名称都不会遵循严格的命名约定,但在寻找所需名称时,我可以考虑多个名称,如“RCP”、“RCP”、“收件人”等
我的问题是,我是否可以在某种索引中获取所有电子表格页面名称,这样我就可以遍历它们并尝试找到我需要的三个名称?这比通过bajillion try/catch获取“RCP”、“RCP”、“Recipient”页面要好得多
我很接近,因为我可以通过以下方式获得Excel电子表格中的页数:
Excel.Application excelApp=new Excel.Application();//创建新的Excel应用程序
excelApp.Visible=true;//使Excel对用户可见。
//以下代码打开现有工作簿
字符串workbookPath=路径;
Excel.Workbook excelWorkbook=null;
尝试
{
excelWorkbook=excelApp.Workbooks.Open(workbookPath,0,
false,5,“,”,false,Excel.XlPlatform.xlWindows,“,true,
假,0,真,假,假);
}
接住
{
//如果现有工作簿无法打开,请创建新工作簿。
excelWorkbook=excelApp.Workbooks.Add();
}
//下面是工作表集合
Excel.Sheets excelSheets=excelWorkbook.Worksheets;
Console.WriteLine(excelSheets.Count.ToString())//dat计数
谢谢你抽出时间
foreach(Excel工作簿中的工作表。工作表)
{
MessageBox.Show(工作表名称);
}
你可以使用字典:
字典<;字符串,工作表>;dict=新词典<;字符串,工作表>;();
foreach(Excel工作簿中的工作表。工作表)
{
dict.Add(工作表名称、工作表);
}
//访问字典中所需的工作表
MessageBox.Show(dict[“Sheet1”].Name);