即使IMEX = 1,Excel驱动程序也不会将数据作为文本读取

时间:2017-09-01 19:33:48

标签: c# .net excel oledb

我正在尝试使用带有以下连接字符串的OleDB驱动程序将.Xlsx文件作为文本读取:

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

但仍然会将数字和日期作为数字和日期。在那里被杀了几个小时 我做错了什么?

1 个答案:

答案 0 :(得分:1)

IMEX = 1表示当驱动程序遇到前8行中的混合类型时,它应该将列视为文本。没有它,它将扫描前8行,确定数据类型,并为那些与数据类型不对应的单元格返回null。它并不意味着将所有内容都作为文本返回。

遗憾的是,Microsoft.ACE.OLEDB.12.0提供程序忽略连接字符串中的ImportMixedTypes和TypeGuessRows。它们设置在注册表中。这是我认为的倒退步骤。

如果你有一个标题,它的文字肯定会帮助返回列的文字。尝试IMEX = 1和HDR =否并在后续处理中丢弃标题。