C# 参考 Excel select 语句中的工作表索引

C# Reference Excel Worksheet index in a select statement

任务: 我需要使用 C# 将 Excel 电子表格工作表的内容加载到数据网格视图中。

进度: 我已通过 OLEDbConnection 连接到 Excel 电子表格,我需要在我的 select 语句中按工作表索引引用第一个工作表。 (我不知道工作表的名称是什么,但我们总是会加载第一个工作表。)下面是我目前的代码...


tbFileName.Text = openFileDialog1.FileName;

System.Data.OleDb.OleDbConnection MyConnection;
System.Data.DataSet DtSet;
System.Data.OleDb.OleDbDataAdapter MyCommand;
MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + tbFileName.Text + ";Extended Properties=Excel 12.0;");
//MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [FlexAccountView$]", MyConnection); <-- accessing worksheet by name...

**MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from " + [need worksheet index reference here], MyConnection);**

我知道这很容易,但出于某种原因,我今天画了一个空白。我已经搜索过 sOf,但没能找到我要找的东西。任何帮助将不胜感激。感谢您的帮助。

这可能不是最好的方法,但这是我能够从 Sorceri 提供的链接中提取的内容..

OleDbConnection MyConnection;
DataSet DtSet;
OleDbDataAdapter MyCommand;
MyConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + tbFileName.Text + ";Extended Properties=Excel 12.0;");

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 

//get the workbook
Microsoft.Office.Interop.Excel.Workbook excelBook = xlApp.Workbooks.Open(tbFileName.Text); 

//get the first worksheet
Microsoft.Office.Interop.Excel.Worksheet wSheet = excelBook.Sheets.Item[1]; 

//reference the name of the worksheet from the identified spreadsheet item
MyCommand = new OleDbDataAdapter("select * from [" + wSheet.Name + "$]", MyConnection);

希望这能帮助人们更快地找到它。

按索引 select 工作表的最简单方法是 ...

Excel.Application ExcelApp = new Excel.Application();
Excel.Workbook WorkBook = ExcelApp.Workbooks.Open(inputFile);
Excel.Worksheet WorkSheet = WorkBook.Worksheets[1]; // This is the simplest call