在C#中打开MS Excel工作表

我知道我们可以通过提供图纸编号(1,2,3 ..)或名称(工作表1,工作表2,工作表3 …)打开MS Excel的特定工作表。

我有一个Excel文件,其中有2张,1.价值观,2.结果

有没有办法打开表格名称,即“值”,而不是1或[S | S] heet1在C#中?

我看着通过旧的post,但没有发现任何有用的…

所以我想要做的是,使用其用户定义的名称(值)而不是系统定义的名称(1或[s | S] heet1)打开Excel工作表,

任何投入将不胜感激!

在项目中添加对Microsoft.Office.Interop.Excel的引用,您可以使用下一个代码作为基础

Excel.Application oXL; Excel._Workbook oWB; Excel._Worksheet oSheet; //Start Excel and get Application object. oXL = new Excel.Application(); oXL.Visible = false; oXL.DisplayAlerts = false; // prevents message from popping up try { //Get a new workbook. oWB = (Excel._Workbook)(oXL.Workbooks.Open(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)); oSheet = (Excel._Worksheet)oWB.ActiveSheet; int nCounter = 1; oSheet.Copy(oSheet, Type.Missing); Excel._Worksheet oSheetGame = (Excel._Worksheet)oWB.Worksheets["MyTemplate"]; oSheetGame.Name = "MyNewWorksheetName"; // do something with worksheet ((Excel._Worksheet)oWB.Sheets["MyTemplate"]).Delete(); // delete template ((Excel._Worksheet)oWB.Worksheets["MyNewWorksheetName"]).Activate(); } catch (Exception e) { //throw e; throw; } finally { //Make sure Excel is visible and give the user control //of Microsoft Excel's lifetime. oXL.Visible = true; oXL.UserControl = true; } oXL.Save(Type.Missing); 

@volody,谢谢! 你的post帮了很多。 我从你的工作表声明部分,并改为以下内容:

  Excel.Application excelApplication; Excel.Worksheet excelWorksheet; Excel.Workbook excelWorkbook; Excel.Range range; excelApplication = new Excel.Application(); excelWorkbook = (Excel.Workbook)(excelApplication.Workbooks.Open( <FILENAME>, Type.Missing, true, Type.Missing, Type.Missing, Type.Missing, true, Type.Missing, Type.Missing, false, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)); excelWorksheet = (Excel.Worksheet)excelWorkbook.Worksheets[<WORKSHEETNAME>]; 

上面的代码有助于使用用户定义的名称打开Excel工作表。 例如对于打开名为Test而不是Sheet 1的工作表。

  • 伊瓦尔