0

[样本.xlsx]

Column 0, Row 0 = "ItemA"    
Column 0, Row 1 = "ItemB"    
Column 0, Row 2 = "ItemC"    
Column 0, Row 3 = "ItemD"

[应用]

DataSet dsData = new DataSet();    
string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Sample.xlsx;Extended Properties='Excel 12.0;'";    
OleDbDataAdapter daGetExcel = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);    
daGetExcel.Fill(dsData);        

foreach (DataRow row in dsData.Tables[0].Rows) 
{ 
    lbExcelData.Items.Add(row[0].ToString()); 
}

lbExcelData是窗体上的 ListBox 控件。

[结果]

“项目B”、“项目C”、“项目D”

[问题]

为什么第一项“ItemA”被忽略?

4

2 回答 2

4

对于 Excel,在连接字符串的扩展属性设置中设置 HDR=NO。

“提供者=Microsoft.ACE.OLEDB.12.0;数据源=Sample.xlsx;扩展属性='Excel 12.0;HDR=NO'”

http://connectionstrings.com/excel-2007

于 2009-04-03T19:04:10.403 回答
0

我相信在这种情况下您的连接字符串应该是:

string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;
    Data Source=Sample.xlsx;Extended Properties='Excel 12.0;HDR=NO;'";
于 2009-04-03T19:08:22.140 回答