我正在将一个简单的excel文件读入我的代码中。 excel有2列:inputDate [Date]和OutputDate [Date] ..
导入Excel后;第二列值没有正确到来..它正好像42005,42006而不是日期.. 第二列还包括假期,我需要作为输出
这是我的代码
var fileName = string.Format("D:\\HolidayMaster", Request.PhysicalApplicationPath, Guid.NewGuid().ToString().Replace("-", string.Empty));
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data
source={0}; Extended Properties='Excel 8.0;;HRD=YES;IMEX=1'", fileName);
var adapter = new OleDbDataAdapter("SELECT * From
[Sheet1$] ", connectionString);
var adapter = new OleDbDataAdapter("SELECT * From [Sheet1$]",connectionString);
DataSet dsExcel = new DataSet();
adapter.Fill(dsExcel, "HolidayMaster");
这只是第二栏的问题。我错过了什么?如果这不是正确的方法。什么是获得假期和约会的正确方法
答案 0 :(得分:0)
ADO.NET根据列中的大多数值选择数据类型。这就是为什么它会转换你的第二列。在您的情况下,B5混淆了ADO.NET
试试这个(未经测试的代码):
更改此行:
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data
source={0}; Extended Properties='Excel 8.0;HRD=YES;IMEX=1'", fileName);
致:
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1';", fileName);