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

Son*_*oul 27 c# excel file-io export-to-excel

我使用控制台应用程序写出一个逗号分隔文件,而不是使用Process打开文件.将查询结果转储到excel是一种快速而又脏的方法.

有一段时间这很好用,但最近我开始得到" 你试图打开的文件'blah.csv',格式与文件扩展名不同 ".

而且点击"是"后

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

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

我在网络世界中看到了一些添加内容处置标题的解决方案,但由于我使用进程打开它,我无法应用该修复.

我的代码打开文件:

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = filePath;
info.UseShellExecute = true;
Process.Start(info);
Run Code Online (Sandbox Code Playgroud)

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

经过一番调查,看起来标题行正在触发错误.如果我只是在标题之前写一个空行,那么错误就会消失.标题看起来像这样:

heading1,heading2,heading3 CRLF

Joh*_*kup 57

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

它似乎有ID作为标题行上的前两个字符是问题 - 在我看来Excel中相当奇怪的行为.

  • 谢谢,是的,我的字段以'ID ...'开头..这很棒,感谢微软! (3认同)
  • 我刚刚用这个答案解决了我的问题(和OP一样).谢谢! (3认同)

Jer*_*emy 5

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