从制表符分隔的 xls 文件中读取数据

Posted

技术标签:

【中文标题】从制表符分隔的 xls 文件中读取数据【英文标题】:Reading data from tab separated xls file 【发布时间】: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 制表符分隔的文件。 查看此链接connectionstrings.com/textfile @iDevlop 我使用了以下连接字符串Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\; Extended Properties="text;HDR=NO;FMT=Delimited";,这不适用于我的扩展名为 .xls 的文件,当我将扩展名更改为 .txt 时,正在读取所有数据仅列,即,它不考虑制表符作为分隔符...而且我的文件在前 6 行中有一些垃圾文本,所以我在上面的连接字符串中给出了 HDR=NO 【参考方案1】:

xls 扩展名只是令人困惑-您的文件与 Excel 无关。将该文件视为普通的制表符分隔文件。循环过去前 6 行,因为它们包含“垃圾”。

您可以为此使用 TextFieldParser 类。

Microsoft 在以下位置提供示例代码和详细信息: http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser(v=vs.100).aspx

【讨论】:

以上是关于从制表符分隔的 xls 文件中读取数据的主要内容,如果未能解决你的问题,请参考以下文章

python pandas 中文件的读写——read_csv()读取文件

从制表符分隔的文本文件中读取日期

R语言文件读取

制表符分隔文件的 OleDb 连接字符串

如何上传Excel直接读取里面的数据,不用鎒xcel文件后再读取

在 vba 中手动创建制表符分隔的文本文件