oldbreader获取文本单元格为空

我正在尝试使用oledbreader和oledbconnection读取一个excel文件,连接string如下所示: @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties=Excel 8.0;" 当我尝试从Excel文件中读取一些文件工作正常,并给我我需要的数据,但在其他情况下,所有具有文本值的列都显示为空,但它通常需要所有的int或double值,没有问题发现有些人把连接string改成了这个

 "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,如果有帮助..

使用这个作为连接string,

 Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+FilePath+";Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1" 

您正在尝试导入混合types,但在input猜测行时列的数据types被视为double,所以文本值不会传入。使用IMEX = 1解决了此问题。