使用 CSVFormat 生成 CSV 时如何在字符串标题中添加双引号和三引号

问题描述

我正在尝试使用 CSVFormat 生成一个 CSV 文件,我的要求是在某些标题添加双引号并在某些标题添加三引号。我可以在所需的标题添加双引号,但我无法使用 CSVFormat 在提到的标题添加三重引号。

下面是例子

"Employee Name","Job Title","Store:","""Stage of Art""",Action required,External Key..etc 

在上面的例子中,员工姓名、职位用双引号括起来,Stage of Art用三引号括起来。 我可以在标题字段中添加双引号,下面是我写的代码

try(CSVPrinter csvPrinter = new CSVPrinter(out,CSVFormat.DEFAULT.withAllowDuplicateHeaderNames("\""+EmplyeeEnum.EMP_NAME.getHeader()+"\"","\""+EmplyeeEnum.JOB_TITLE.getHeader()+"\"","\""+EmplyeeEnum.STAGE_OF_ART.getHeader()+"\"",EmplyeeEnum.ACTION_required.getHeader(),EmplyeeEnum.EXTERNAL_KEY.getHeader()).withEscape('\\').withQuoteMode(Quote.NONE)

以上代码生成如下输出

"Employee Name","Stage of Art",External Key..etc

谁能建议我如何解决这个问题

解决方法

这应该会给你预期的结果。

new CSVPrinter(w,CSVFormat.DEFAULT
                .withHeader("\"Employee Name\"","\"Job Title\"","\"Store:\"","\"\"\"Stage of Art\"\"\"","Action Required","","External Key").withEscape('\\').withQuoteMode(QuoteMode.NONE))