通过java创建csv文件

时间:2013-10-10 22:23:25

标签: java csv

我正在尝试将数据插入csv文件时遇到由引号引起的问题。 我有两个元素:20“和BI。 完成这句话之后:

writers[k].write("\"" + tablelist.get(k).get(i)[j] + "\",");

他们将被表示为:

"20",","BI"

在csv文件中,它将在单元格中显示为20“,BI”而不是两个单独的元素。

有人能给我建议如何解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

呃......使用opencsv,在任何情况下都不要尝试自己解析或写入CSV。边缘情况太多,需要解决。如果要追加,请先read the CSV in,然后将字符串数组添加到列表中,并write it out。还有其他适用于Java的CSV库,它们以类似的方式工作。

答案 1 :(得分:2)

使用不同的引号字符"。您可以配置打开csv文件时要将哪个字符视为引号。

而不是这个

writers[k].write("\"" + tablelist.get(k).get(i)[j] + "\",");

添加引号字符,然后选择您不太可能获得的数据

String quote = "|";
writers[k].write(quote + tablelist.get(k).get(i)[j] + quote +",");

然后当你打开它(取决于程序)时,你可以配置它,以便|用作引用

在Libre Office中,它应该在您双击csv文件时询问您

在MS Excel中(取决于版本)你打开excel然后从文本导入然后它会给你选择然后选择。

答案 2 :(得分:1)

RFC 4180 Common Format and MIME Type for Comma-Separated Values (CSV) Files

第2.7节:

  

如果使用双引号括起字段,则使用双引号          出现在一个字段内必须通过前面的方式进行转义          另一个双引号。例如:

   "aaa","b""bb","ccc"

但正如其他人所说,最好使用一个为您处理这些细节的库。