【发布时间】:2010-11-23 10:04:30
【问题描述】:
首先,我想说的是,我是在深水中,因为我只是对公司中其他人编写的代码进行一些更改,使用 OleDbDataAdapter 与 Excel“对话”,我'我对此并不熟悉。有一个错误,我无法理解。
我正在尝试使用 OleDbDataAdapter 读取大约 450 行的 excel 文件。
在代码中是这样完成的:
connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source='" + path + "';" + "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\"");
connection.Open();
OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand.CommandText, connection);
objAdapter.Fill(objDataSet, "Excel");
foreach (DataColumn dataColumn in objTable.Columns) {
if (dataColumn.Ordinal > objDataSet.Tables[0].Columns.Count - 1) {
objDataSet.Tables[0].Columns.Add();
}
objDataSet.Tables[0].Columns[dataColumn.Ordinal].ColumnName = dataColumn.ColumnName;
objImport.Columns.Add(dataColumn.ColumnName);
}
foreach (DataRow dataRow in objDataSet.Tables[0].Rows) {
...
}
除了一件事之外,一切似乎都运行良好。第二列主要填充四位数字,如 6739、3920 等,但 fice 行具有字母数字值,如 8201NO 和 8205NO。这五个单元格被报告为具有空白内容而不是其字母数字内容。我已经在excel中签入,并且该列中的所有单元格都标记为文本。
顺便说一下,这是一个 xls 文件,而不是 xlsx。
有没有人知道为什么这些单元格在 DataRow 中显示为空白,但数字单元格显示正常?还有其他包含字母数字内容的列显示得很好。
【问题讨论】:
-
感谢大家帮助我解决这个问题。你让我明白为什么会发生这种情况,所以我可以找到合适的解决方案。我仍然认为它的工作方式非常糟糕,但那是另一回事:)
标签: c# excel jet oledbconnection