最近要做csv文件的导出,因为csv文件是用逗号隔开的文本文件,用excel打开csv文件的时候会按逗号分单元格。导致导出来的数据有的包含逗号的被隔开在多个单元格里面。
解决方式:
把数据中的逗号加上双引号,就可以避免被解析,可以防止上面的问题出现。
String value =json.getString(title);
if(json.getString(title).contains(",")) {
value = "\""+value+"\"";
}
代码:
for (JSONObject json :exportData) {
for (String title :titlelist) {
// write.append(json.containsKey(title)?json.getString(title):"").append(tab);
if (json.containsKey(title)){
String value =json.getString(title);
if(json.getString(title).contains(",")) {
value = "\""+value+"\"";
}
write.append(value).append(tab);
}else {
write.append("").append(tab);
}
}
write.append(enter);
}
这样就可以避免数据中的逗号被解析
附:如果数据中包含双引号可以先把双引号外面加上双引号。
if(value.contains("\"")){
value=value.replace("\"", "\"\"");
}