从制表符分隔的 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()读取文件