【问题标题】:How to configure Super CSV to quote all values except column names?如何配置 Super CSV 以引用除列名之外的所有值?
【发布时间】:2016-07-29 10:53:44
【问题描述】:

要求是:

  • 记录中的每个值都应该被引用。
  • 列名应以逗号和空格(, )分隔。

例如

Name, Age, Location
"A","154","California"
"B","2","New York"

如何创建这样的 SuperCSV 写作偏好?

【问题讨论】:

  • “但不要引用列名”和“列名应该用逗号和空格(,)分隔”似乎不兼容
  • 不引用列名表示[X] "Name","Age","Location" ,列名之间用逗号隔开,空格表示[✓] Name, Age, Location。它们不兼容吗?

标签: java csv supercsv


【解决方案1】:

使用以下自定义报价模式:

public class AllExceptHeaderQuoteMode implements QuoteMode {

    @Override
    public boolean quotesRequired(String csvColumn, CsvContext context, CsvPreference preference) {
        if (1 == context.getLineNumber()) {
            /*
             * Case whene column names are written
             */
            return false;
        } else {
            return true;
        }
    }
}

使用自定义报价模式:

CsvPreference preference = new CsvPreference.Builder(CsvPreference.STANDARD_PREFERENCE).useQuoteMode(new AllExceptHeaderQuoteMode()).build());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多