的Oledb阅读器无法正确读取Excel文件

我正在尝试通过OLEDB阅读器读取xls文件,并在xls的一列中使用混合数据类型. Oledb向我返回了这些列值的DBNULL.我在本专栏的第一个单元格中有05-06-12.当我去检查格式单元格时,它会向我显示dd-mm-yy的自定义类型,而在所有其他单元格中会显示常规格式.我正在使用以下连接字符串

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

我在xls中有以下数据

> 12年5月6日
>
 ‘abc’
>“ 56565”

OLEDB像这样阅读

> 2012年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文件.

上一篇:OleDb写入DBF时 Insert Into 语句的语法错误


下一篇:如何使用OleDB闪避Excel文件中的空行?