我尝试按照下面的链接解决方案 String containing comma inputting in to the csv file
for(String data : getCSVData())
{
if (data != null && data.contains(",")) {
data = "\"" + data + "\"";
}
}
但如果数据类似于 1,234(String),则生成过程类似于 ""1,234""。所以这些数据放在两个不同的单元格中。
输出如下
最佳答案
用双引号转义应该可以使其工作,您可能不会通过获取 CSV 数据来更新集合以反射(reflect)更改。请参阅下面的代码,对我来说工作正常。
try {
List<String> csvData = new ArrayList<String>();
csvData.add("test");
csvData.add("test,ing");
csvData.add(",testing");
List<String> newCsvData = new ArrayList<String>();
for (String str : csvData) {
if(str.indexOf(",") >= 0){
str = "\""+str+"\"";
}
newCsvData.add(str);
}
String csv = StringUtils.join(newCsvData, ',');
System.out.println(csv);
PrintWriter out = new PrintWriter("D://filename.csv");
out.println(csv);
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出:
关于java - 在 CSV 写入中转义 ',' 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32111816/