代码之家  ›  专栏  ›  技术社区  ›  Sonic Soul

从控制台生成/打开CSV-文件格式错误

  •  27
  • Sonic Soul  · 技术社区  · 15 年前

    我正在使用控制台应用程序写出一个逗号分隔的文件,而不是使用进程来打开该文件。这是一种将查询结果转储到excel的快速而肮脏的方法。

    有一段时间这很管用,但最近我开始 您试图打开的文件“blah.csv”的格式与文件扩展名指定的格式不同 ".

    在点击“是”之后

    Excel检测到blah.csv是一个SYLK文件,但无法加载它。文件有错误或不是SYLK文件格式。单击“确定”尝试以其他格式打开文件。

    按OK打开它,并正确显示。

    我在web世界中看到了一些解决方案,其中添加了内容部署头,但是由于我使用一个进程来打开它,所以无法应用该修复程序。

    打开文件的代码:

    ProcessStartInfo info = new ProcessStartInfo();
    info.FileName = filePath;
    info.UseShellExecute = true;
    Process.Start(info);
    

    如果我在Notepad++中打开文件并显示所有字符,它只显示为带有CR LF行结尾的常规CSV。

    经过调查,标题行似乎触发了错误。如果我只是在标题前写一个空行,错误就会消失。标题如下:

    头部1,头部2,头部3 CRLF

    4 回复  |  直到 15 年前
        1
  •  57
  •   John Pickup    15 年前

    看看这里: http://support.microsoft.com/kb/323626

    头一行的前两个字符是ID,这似乎是个问题——在我看来,Excel的行为相当怪异。

        2
  •  5
  •   Jeremy    14 年前

    CSV以两个字符ID开头。如果用双引号将字符括起来,它应该可以正常工作。

        3
  •  2
  •   Ashutosh Nigam    11 年前

    (编辑) 我有一个类似的问题-我得到了完全相同的错误,但在我的情况下,这是突然发生后,几个月的频繁使用。 我想知道问题是否真的是“ID”栏的标题,Microsofts的解决方案并没有解释为什么,正如OP所说的,“一段时间内这一切都很好”,然后变成了一个问题。

    我发现在我的场景中,有一些来自上游系统的错误数据,其中某人的名字中添加了逗号,这将使.csv文件失效。这导致了“文件格式错误”,但发送给我的路径错误,“[文件名]是SYLK文件,但无法加载”

    希望有一天这能帮助别人。

        4
  •  0
  •   Caroline Bennett    9 年前

    SYLK file format is not valid error 当CSV文件的前两个字符是大写的I和D时发生。可以通过以下步骤解决此问题: 在记事本中打开文件,并在第一个字符之前按撇号键。 保存文件并重新打开MS Excel。