POI将xlsx转换为CSV逗号和双引号的Java
尝试将xlsx转换为CSV,其中一列使用多个引号和逗号,转换为CSV时,将分隔为不同的单元格而不是一个单元格。 下面是场景,POI将xlsx转换为CSV逗号和双引号的Java
标题正在向多,附加代码
if(cell.getStringCellValue().contains(",")){
if (cell.getStringCellValue().contains("\"")){
String t= "\""+cell.getStringCellValue()+"\"";
data.append(t+",");
}
else{
data.append("\""+cell.getStringCellValue()+"\""+",");
}
}
你需要逃避这些特殊的标志:
如。如果你想在一个CSV文件中的值one
和two,three
为两列用引号将第二栏:
one,"two,three"
为了逃避双引号"
列的值用双引号encolse并使用""
逃脱值内引号。例如,如果你有abc"def
一个字段应该被转义为:
"abc""def"
因此,对于你的情况下,它可能是一个衬垫,而不是整个if
声明:
data.append("\"").append(cell.getStringCellValue().replaceAll("\"", "\"\"")).append("\",");
感谢您的回复。我的情况如下,“BESPI:计划度量收集失败的任务”bespi_start bespi_mon.pl -m 600,609“和用户”$ AGENT_USER“。[策略:BESPI_Collect_Router_5m]”,“P3” –
@ VICKY-TSC我已经为您更新我的答案和解决方案。 –
为什么不直接使用的一个许多经过适当编写和测试的开源CSV库,它能够逃脱权利,而不是试图自我推销? – Gagravarr