我正在尝试通过 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 中有以下数据
'abc'
OLEDB 像这样读取
可能是什么原因 ?即使我把
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/