我正在使用控制台应用程序编写一个逗号分隔的文件,而不是使用 Process 打开该文件。这是一种将查询结果转储到 Excel 中的快速但肮脏的方法。
有一段时间这工作得很好,但最近我开始“您尝试打开的文件“blah.csv”的格式与文件扩展名指定的格式不同".
点击“是”后
Excel 检测到 blah.csv 是 SYLK 文件,但无法加载它。文件有错误或不是 SYLK 文件格式。单击“确定”尝试以其他格式打开文件。
按“确定”将其打开并正确显示。
我在网络世界中看到了一些解决方案,添加了内容处置标头,但由于我使用进程来打开它,所以我无法应用该修复。
我的打开文件的代码:
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 http://support.microsoft.com/kb/323626
似乎将 ID 作为标题行的前两个字符是问题所在 - 在我看来,Excel 的行为非常奇怪。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)