我正在尝试通过 OLEDB 阅读器读取 xls 文件,在一列 xls 中使用混合数据类型。 Oledb 为这些列值返回 DBNULL。我在本列的第一个单元格中有 05-06-12。当我检查格式单元格时,它向我显示 custom type with dd-mm-yy 并且在所有其他单元格中它显示通用格式。我正在使用以下连接字符串

mCon.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;data source=" + mstrFilePath + ";Extended Properties=\"Excel 12.0;HDR=NO;IMEX=1\";");

我在 xls 中有以下数据
  • 05-06-12

  • 'abc'
  • '56565'

  • OLEDB 像这样读取
  • 12 年 6 月 5 日
  • DBNULL
  • DBNULL

  • 可能是什么原因 ?即使我把 IMEX = 1 放在连接字符串中!!!

    最佳答案

    我在阅读 xlsx 文件时遇到了类似的问题。我将连接字符串更改为以下内容并且它起作用了:

    const string con = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xlsx;" +"Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;TypeGuessRows=0;ImportMixedTypes=Text\"";
    

    您需要将您的 xls 转换为 xlsx 并使用
    Microsoft.ACE.OLEDB.12.0
    

    读取 xlsx 文件。

    关于c# - Oledb 阅读器无法正确读取 excel 文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17144866/

    10-12 00:42