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

标签 c# excel file-io export-to-excel

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

有一段时间这工作正常,但最近我开始收到“您尝试打开的文件‘blah.csv’的格式与文件扩展名指定的格式不同”。

然后点击"is"

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

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

我在 web 世界中看到了一些通过添加内容配置 header 来解决此问题的解决方案,但由于我正在使用进程打开它,所以我无法应用该修复程序。

我打开文件的代码:

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

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

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

标题1,标题2,标题3 CRLF

最佳答案

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

问题似乎是将 ID 作为标题行的前两个字符 - 我认为 Excel 的行为非常奇怪。

关于c# - 从控制台生成/打开 CSV - 文件格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4286511/

相关文章:

excel - vba 关心自动过滤器吗?

excel - 使用 Excel 进行字符串操作 - 如果存在字符串的一部分,如何删除其中的一部分?

excel - VBA:什么是97.45 * 1#=?

c++ - 在 Linux 上用 C++ 移动文件的更快方法

c# - 限制 Visual Studio 2005 中测试运行结果的数量

c# - ASP.NET Core 应用程序日志未写入 Azure 应用服务中的 Blob

c# - GridView - SqlDataSource 中的客户端 "WHERE"子句?

java - 使用 DataInputStream 从文件中读取非常慢

java - 从文件读取内容时异常处理的奇怪行为

c# - 如果找不到我输入的记录,如何在 SQL 中找到下一个更大的可用记录