OleDb Excel缺少混合数据类型的数据

时间:2017-02-14 10:52:41

标签: c# winforms connection-string oledb oledbconnection

我正在尝试通过此连接字符串从Excel(xls)文件中读取数据,但在特定列下缺少某些数据。

连接字符串如下;

        props["Provider"] = "Microsoft.ACE.OLEDB.12.0;";
        props["Extended Properties"] = "\"Excel 12.0;HDR=YES;IMEX=1;ImportMixedTypes=Text\"";
        props["Data Source"] = path;

我的Excel数据是这样的,由于第二行中的日期值,缺失数据位于“G”列下。

enter image description here

我尝试了OleDB & mixed Excel datatypes : missing data下的所有内容但没有工作..

THX!

1 个答案:

答案 0 :(得分:0)

ACE.OLEDB驱动程序使用注册表设置来确定每个列的数据类型。默认情况下,要检查并猜测列类型的行数设置为 8

您的日期值恰好适合第一个单元格块。因此,很可能ACE试图将G列中的其余行读作日期。

以下是您可以做的事情:

  1. 删除G列中的日期值(可能您的要求不允许)。
  2. 强制Excel将您的07.11.2016日期值视为文本而不应用任何自动格式。要实现此目的,请在同一单元格中使用单引号字符'添加日期值,或者通过单元格属性手动将日期的单元格数据类型设置为Text。然后再试一次。
  3. HTH