Apache Commons CSV - 不区分大小写的标头?

Kou*_*lik 5 java csv apache-commons apache-commons-csv

Apache CSV实现中是否有内置功能在读取csv时忽略标题大小写?

前段时间我们已经实现了将CSV导出文件转换为SQL的实用程序.为此,我们选择了Apache CSV.到目前为止,一切都很好,但现在我们已经有了变更请求.

我们处理的所有CSV文件都必须包含标题,现在我们应该以不区分大小写的方式读取这些标题,因此我们的用户不必花费精力在其中,并观察他们创建的CSV是否遵循我们的标题案例要求.

代码示例:

for (CSVRecord record : subsidiaryRows) {
    String name = record.get(Data.NAME));
Run Code Online (Sandbox Code Playgroud)

Data.NAME的位置

public static final String NAME = "Name";
Run Code Online (Sandbox Code Playgroud)

当用户在其CSV中使用"name"作为列标题而不是使用大写"N"的"Name"时,问题显然会引发.

我已经跟踪了API和源代码,但找不到任何东西.有没有办法如何强制CSVRecord使用CaseInsensitiveMap进行映射或类似的东西?

Gar*_*ory 5

此功能已作为CSV-159添加到Apache Commons CSV 1.3中

承诺修订1708685.

  • 要使用此功能: CSVParser parser = CSVFormat.EXCEL.withHeader().withIgnoreHeaderCase().parse(reader); (2认同)