我正在尝试使用oledbreader和oledbconnection读取excel文件,连接字符串如下所示
@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties=Excel 8.0;"
当我尝试从excel文件中读取一些文件工作正常并给我我需要的数据但在其他情况下所有具有文本值的列都显示为空但它通常采用所有int或double值而没有问题我环顾四周,发现有些人将连接字符串更改为此
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PrmPathExcelFile + @";Extended Properties=""Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text"""
之后它工作得很好。我试过这种方式,但当我尝试打开连接时,我得到isam错误。 我读取的文件是xlsx而不是xls,如果这有帮助..
答案 0 :(得分:1)
将此用作连接字符串,
Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+FilePath+";Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1"
您正在尝试导入混合类型,但在类型猜测行时,列是数据类型被视为double,因此文本值不会到来。使用IMEX = 1解决了这个问题。