【发布时间】:2014-10-01 15:02:19
【问题描述】:
我正在使用下面的 ACE.OLEDB 来读取 C# 中的 excel 文件。 我的 Excel 文件具有以下表格,并按以下顺序:
Sheet1、Sheet1 (2)、Sheet2
我的代码中的变量 sheetName 将“Sheet1 (2)”作为第一个工作表,而不是“Sheet1”。
我的问题是它如何确定工作表的顺序?
string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
// Extra blank space cannot appear in Office 2007 and the last version. And we need to pay attention on semicolon.
using (OleDbConnection conn = new OleDbConnection(connstring))
{
conn.Open();
System.Data.DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, null, "Table"});
string firstSheetName = sheetsName.Rows[0][2].ToString();
string sql = string.Format("select * from [{0}]", firstSheetName);
OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);
DataSet set = new DataSet();
ada.Fill(set);
【问题讨论】:
标签: c# excel oledbconnection