3

我在 C# 连接中使用 OleDb 从 Excel 工作表中读取数据。并将其填充到数据表中。

该工作表包含 275 行和 27 列。我读完后,第 1,2 和 3 行是空的。所有其他行都正确填写。

有人对这个问题有想法吗?

这是我的代码:

string connString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
                "Data Source=" + "C:/Sheets/DataSheet.xls" + ";Extended Properties=Excel 12.0;";

objConn = new OleDbConnection(connString);

string Query = "SELECT * FROM [Sheet1$]";
OleDbCommand objCmd = new OleDbCommand(Query, objConn);

DataTable Table = new DataTable();
objAdapter1.SelectCommand = objCmd;
objAdapter1.Fill(Table);
4

3 回答 3

6

问题是我的工作表包含混合数据,并且只读取数字。解决方案是指定

Properties=\"Excel 12.0;IMEX=1\";"

IMEX=1 允许阅读器导入所有数据,而不仅仅是数字

于 2011-09-07T07:53:10.893 回答
2

HDR=NO除非您在连接字符串中指定,否则这篇文章有一些关于第一行被视为标题的信息。

但是,我不确定为什么会跳过第二行和第三行;您可以看到它们的内容有什么不同吗?

于 2011-09-06T14:27:23.283 回答
0

我刚刚在上一行添加了新行,它出现在数据集中。所以在我的情况下,行订单改变解决了问题

于 2017-10-03T12:07:23.867 回答