首页 > 解决方案 > OpenCSV 引用空值

问题描述

使用 OpenCSV 库,调用StatefulBeanToCsv.write()我的空值被包含在引号中。

例子:

String[] columns = new String[] {
    "Col1",
    "Col2",
    "Col3"
};

ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
strat.setColumnMapping(columns);

Writer writer = new FileWriter(outputFilePath);
StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer)
        .withMappingStrategy(strat)
        .build();
beanToCsv.write(items);
writer.close();

将产生:

1,"",3

当我期望:

"1",,"3"

没有通过 为所有字段设置引号.withApplyQuotesToAll(true)

如果我确实使用.withApplyQuotesToAll(true),我最终会得到

"1","","3"

在某一时刻,图书馆似乎与此相反:

OpenCSV CSVWriter 不为空元素添加引号字符

如何将值写入为空白/空值而不是空字符串?

标签: javacsvopencsv

解决方案


看起来您提到的未调用的方法实际上需要一个布尔值。您是否尝试过以下操作?

.withApplyQuotesToAll(false)

推荐阅读