【问题标题】:Reading data from tab separated xls file从制表符分隔的 xls 文件中读取数据
【发布时间】: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

标签: c# excel xls tsv


【解决方案1】:

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

您可以为此使用 TextFieldParser 类。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-19
    • 2018-05-24
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多