读取Excel时,某些单元格为空值

 读取Excel时,某些单元格为空值

   前些日子,写了一个Excel导入数据库的共同Batch,突然有一天发现当我修改Excel某一列的值的时候突然读不出来值了.奇怪之余,做了一些调研.

  原来如此:

  当我们用OleBb读取Excel的时候,如果没有配置IMEX=1的属性,微软的处理机制是将列转换为同一类型来读取的.例如你在第一行写的数字格式,而第二行写的字符格式,就会出现某些列有值却读不出来.其实问题也很简单,如果知道问题所在的话.属性设置为"IMEX=1"即可

  附以下参考:

string xlsDriver = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';"; OleDbConnection conn = new OleDbConnection(string.Format(xlsDriver, fileName));

"HDR=Yes;" indicates that the first row contains columnnames, not data. "HDR=No;" indicates the opposite. "IMEX=1;" tells the driver to always read "intermixed" (numbers, dates, strings etc) data columns as text. Note that this option might affect excel sheet write access negative. 加上IMEX=1这个属性,Excel单元格的值就会以文本型读取,避免由于数据类型不一致导致某些值读不出来的问题

你可能感兴趣的:(读取Excel时,某些单元格为空值)