【发布时间】:2010-11-26 15:26:43
【问题描述】:
我正在使用控制台应用程序写出一个逗号分隔的文件,而不是使用 Process 打开文件。这是将查询结果转储到 excel 中的一种快速而肮脏的方式。
有一段时间这很好用,但最近我开始收到“您尝试打开的文件'blah.csv'的格式与文件扩展名指定的格式不同”。
点击“是”后
Excel 检测到 blah.csv 是一个 SYLK 文件,但无法加载它。文件有错误或者不是 SYLK 文件格式。单击“确定”尝试以其他格式打开文件。
按 OK 将打开它,并正确显示。
我在网络世界中看到了一些解决方案,其中添加了 content-disposition 标头,但由于我使用进程打开它,我无法应用该修复程序。
我打开文件的代码:
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = filePath;
info.UseShellExecute = true;
Process.Start(info);
如果我在 Notepad++ 中打开文件并显示所有字符,它只会显示为带有 CR LF 行结尾的常规 CSV。
经过一番调查,标题行似乎触发了错误。如果我只是在标题前写一个空行,错误就会消失。标题如下所示:
标题1,标题2,标题3 CRLF
【问题讨论】:
-
你能把文件的前几行贴出来吗?如有必要,匿名。
标签: c# excel file-io export-to-excel