我正面临着一个由引号引起的问题,同时试图将数据插入到csv文件中。 我有两个要素:20" 和BI 通过这句话运行后:由java创建csv文件
writers[k].write("\"" + tablelist.get(k).get(i)[j] + "\",");
他们会被显示为:
"20",","BI"
CSV文件,将它在细胞呈现20" BI”,而不是两个独立的元素。
谁能给我建议,就如何解决这个问题?
我正面临着一个由引号引起的问题,同时试图将数据插入到csv文件中。 我有两个要素:20" 和BI 通过这句话运行后:由java创建csv文件
writers[k].write("\"" + tablelist.get(k).get(i)[j] + "\",");
他们会被显示为:
"20",","BI"
CSV文件,将它在细胞呈现20" BI”,而不是两个独立的元素。
谁能给我建议,就如何解决这个问题?
呃...使用opencsv,在任何情况下都不要试图自己解析或编写CSV。有太多的边缘案例,这是处理。如果要追加,请首先输入read the CSV in,然后将字符串数组添加到列表中,并将write it out添加到列表中。还有其他用于Java的CSV库可以以类似的方式工作。
使用不同的曲ote字符然后"
。您可以在打开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,然后从文本导入,然后它应该给你选择然后。
如果报价无法更改会怎么样?它在我需要解析的文件中,并且每次出现时都无法更改它们 – WangMango
为什么报价无法更改?您只需在您的代码行中更改它们....'writers [k] .write(“\”“+ tablelist.get(k).get(i)[j] +”\“,”);' –
RFC 4180 Common Format and MIME Type for Comma-Separated Values (CSV) Files
2.7:
如果双引号用于封装字段,然后一个双引号 一个领域内出现必须由具有 另一双引号前面逃跑了。例如:
"aaa","b""bb","ccc"
但正如其他人所说的,这将是更好地使用处理这些细节为你的库。
为什么不使用一些CSV库(例如http://supercsv.sourceforge.net/)? –