POI Java将xlsx转换为CSV逗号和双引号

尝试将xlsx转换为CSV,其中一列有多个引号和逗号,当转换为CSV时,它被分隔到不同的单元格而不是一个单元格。 以下是场景,

实际数据

转换

标题正在移动到多个,附上代码

if(cell.getStringCellValue().contains(",")){ if (cell.getStringCellValue().contains("\"")){ String t= "\""+cell.getStringCellValue()+"\""; data.append(t+","); } else{ data.append("\""+cell.getStringCellValue()+"\""+","); } } 

你需要逃避这些特殊的迹象:

例如。 如果你想要onetwo,three值,一个CSV文件中的two,three列两列用引号将第二列括起来:

 one,"two,three" 

为了避免双引号"中的列值使用双引号括起来,并使用""来转义值内的引号。例如,如果你有一个字段与abc"def它应该被转义为:

 "abc""def" 

所以对于你的情况,它可能是一个class轮,而不是整个if陈述:

 data.append("\"").append(cell.getStringCellValue().replaceAll("\"", "\"\"")).append("\",");