首先,我想說我在這裏深陷困境,因爲我只是對公司中其他人編寫的代碼進行了一些更改,使用OleDbDataAdapter與Excel進行「交談」,我對此並不熟悉。有一個錯誤我不能遵循。使用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中顯示爲空白,但數字的單元格顯示正常?還有其他列顯示字母數字內容,顯示得很好。
感謝所有幫助我這個問題。你讓我明白爲什麼會發生這種情況,所以我可以找到適當的解決方案。我仍然認爲它的工作方式是相當可怕的,但那是另一回事:) – 2010-09-29 07:52:53