【发布时间】:2012-12-01 06:27:38
【问题描述】:
我有一个带有.xls 扩展名的文件,它实际上包含由制表符空格分隔的数据,即
当我右键单击并在记事本中打开文件时,我可以看到所有由制表符空格分隔的纯文本数据
我正在使用以下连接字符串从文件中读取数据
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\abc.xls;Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;FMT=TabDelimiter;\";
它适用于在 Microsoft excel 中保存为 .xls 的其他文件,但是当我尝试使用上述文件时出现以下异常
"External table is not in the expected format."
我应该如何在 C# 中从这样的文件中读取数据?
【问题讨论】:
-
如果它是制表符分隔文件,则它不是 Excel 文件,即使它与操作系统中的 Excel 相关联并且 Excel 能够打开它。只需将该文件视为任何 .txt 制表符分隔的文件。
-
@iDevlop 我使用了以下连接字符串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\; Extended Properties="text;HDR=NO;FMT=Delimited";,这不适用于我的扩展名为 .xls 的文件,当我将扩展名更改为 .txt 时,正在读取所有数据仅列,即,它不考虑制表符作为分隔符...而且我的文件在前 6 行中有一些垃圾文本,所以我在上面的连接字符串中给出了 HDR=NO