Excel 即使 IMEX=1,驱动程序也不会以文本形式读取数据
Excel driver not reading data as text even if IMEX=1
我正在尝试使用带有以下连接字符串的 OleDB 驱动程序将 .Xlsx 文件读取为文本:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myFile.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1;"
但仍然获取数字和日期作为数字和日期。消磨了几个小时。
我做错了什么?
IMEX=1 表示当 driver 在前 8 行中遇到混合类型时,它应该将该列视为文本。如果没有它,它将扫描前 8 行,确定数据类型,并为那些不符合数据类型的单元格确定 return null。它并不意味着 return一切都是文本。
遗憾的是,Microsoft.ACE.OLEDB.12.0 提供程序忽略了连接字符串中的 ImportMixedTypes 和 TypeGuessRows。它们在注册表中设置。我认为这是倒退。
如果您有 header 并且它的文本肯定会帮助 return 列的文本。尝试 IMEX=1 和 HDR=No,并在后续处理中丢弃 header。
我正在尝试使用带有以下连接字符串的 OleDB 驱动程序将 .Xlsx 文件读取为文本:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myFile.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1;"
但仍然获取数字和日期作为数字和日期。消磨了几个小时。
我做错了什么?
IMEX=1 表示当 driver 在前 8 行中遇到混合类型时,它应该将该列视为文本。如果没有它,它将扫描前 8 行,确定数据类型,并为那些不符合数据类型的单元格确定 return null。它并不意味着 return一切都是文本。
遗憾的是,Microsoft.ACE.OLEDB.12.0 提供程序忽略了连接字符串中的 ImportMixedTypes 和 TypeGuessRows。它们在注册表中设置。我认为这是倒退。
如果您有 header 并且它的文本肯定会帮助 return 列的文本。尝试 IMEX=1 和 HDR=No,并在后续处理中丢弃 header。