我正在尝试使用 java 将数据写入 csv 文件,但是当我尝试使用 excel 打开生成的文件时,我收到一条错误消息,指出文件已损坏。在记事本中打开文件后,它看起来格式正确,所以我不确定是什么问题。我正在使用 FileWriter 类将数据输出到文件。
FileWriter writer = new FileWriter("test.csv");
writer.append("ID");
writer.append(',');
writer.append("name");
writer.append(',');
...
writer.append('\n');
writer.flush();
writer.close();
我是否需要在 java 中使用一些库才能打印到 csv 文件?我认为只要您使用正确的格式,您就可以在 Java 中本地执行此操作。
感谢帮助,
邵氏
原文由 Shaw 发布,翻译遵循 CC BY-SA 4.0 许可协议
基本上是因为 MS Excel 无法决定如何打开包含此类内容的文件。
当您将
ID
作为电子表格类型文件中的第一个字符时,它符合 SYLK 文件的规范,并且 MS Excel(以及可能的其他电子表格应用程序)尝试将其作为 SYLK 文件打开。但与此同时,它不符合 SYLK 文件的完整规范,因为文件中的其余值是以逗号分隔的。因此,显示错误。要解决此问题,
"ID"
更改为"id"
它应该会按预期工作。这很奇怪。但是,是的!
还尝试通过减少使用文件对象来最小化文件访问。
我测试过,下面的代码完美无缺。