在c#中导入excel时出现日期列错误

时间:2015-08-19 12:55:33

标签: c# .net excel

我正在将一个简单的excel文件读入我的代码中。 excel有2列:inputDate [Date]和OutputDate [Date] ..

enter image description here

导入Excel后;第二列值没有正确到来..它正好像42005,42006而不是日期.. 第二列还包括假期,我需要作为输出

enter image description here

这是我的代码

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");

这只是第二栏的问题。我错过了什么?如果这不是正确的方法。什么是获得假期和约会的正确方法

1 个答案:

答案 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);