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()+"\""+","); } }
你需要逃避这些特殊的迹象:
例如。 如果你想要one
和two,three
值,一个CSV文件中的two,three
列两列用引号将第二列括起来:
one,"two,three"
为了避免双引号"
中的列值使用双引号括起来,并使用""
来转义值内的引号。例如,如果你有一个字段与abc"def
它应该被转义为:
"abc""def"
所以对于你的情况,它可能是一个class轮,而不是整个if
陈述:
data.append("\"").append(cell.getStringCellValue().replaceAll("\"", "\"\"")).append("\",");