我一直在使用excel电子表格,到目前为止我从来没有遇到任何问题..但是这个错误,“不是合法的OleAut日期。”,当我试图读取excel文件时,突然出现了。有谁知道如何解决这个问题。这是我用来读取excel并将数据放入数据集的代码。它之前运行良好但在我对数据源进行了一些更改(不涉及日期)之后出现了这个错误。
var fileName = string.Format("C:\\Drafts\\Excel 97-2003 formats\\All Data 09 26 2012_Edited.xls");
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
DataSet Originalds = new DataSet();
adapter.Fill(Originalds, "Employees"); // this is where the error shows up
答案 0 :(得分:8)
我想出了解决这个问题的方法我将连接字符串更改为最新的oleDB提供程序。
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;'", fileName);
我还确保我的Excel数据的最后一行之后的空格不会被读取为值。
答案 1 :(得分:0)
查找不同的日期格式,在我的情况下,其中一列是dd / mm / yyyy格式,另一列是mm / dd / yyyy。一旦日期格式得到纠正,数据导入就会起作用。
答案 2 :(得分:0)
对于我来说,我在表中手动插入了一个错误格式的日期,它是01/01/0019而不是01/01/2019。
答案 3 :(得分:0)
我在 oledb 中阅读 excel 时遇到了这个问题。
我发现在 excel 中,许多日期列在开始记录中都是空的。我在 excel 中有 6000 条记录,其中一个 datecolumn 大约有前 4000 个空单元格,因此 excel 无法理解要转换单元格的内容,因此我添加了一个带有日期的虚拟记录填充并处理我的文件。或者,您可以在顶部移动一些具有日期值的记录