【问题标题】:csv-commons - withSkipHeaderRecord option doesn't skip anythingcsv-commons - withSkipHeaderRecord 选项不会跳过任何内容
【发布时间】:2018-04-11 03:27:24
【问题描述】:

我有通常的带有标题的 csv 文件

f1, f2, f3
1, 2, 3

我尝试解析它:

 Iterable<CSVRecord> records = CSVFormat.EXCEL.withIgnoreEmptyLines().withSkipHeaderRecord().parse(in);
            records.forEach(record -> {
               ...

但无论如何,第一条记录还是标题。

我做错了什么?

【问题讨论】:

    标签: java csv parsing header apache-commons-csv


    【解决方案1】:

    我知道,对吧?假设你有一碗绿色、棕色和红色的 M&M。你决定跳过蓝色的。你知道我要去哪里吗?您没有标题记录。

    试试 .withFirstRecordAsHeader()。我想你会很高兴的。

    【讨论】:

      【解决方案2】:

      我认为 Ion Freeman 想说的是,如果您首先声明第一行是这样的标题,则可以跳过标题:(未测试)。

       Iterable<CSVRecord> records = CSVFormat.EXCEL.withIgnoreEmptyLines().withFirstRecordAsHeader().withSkipHeaderRecord().parse(in);
      

      在我的情况下,这是不可能的,因为我有一个带有重复项的无效标题。我不得不通过另一种方式将其删除。我看了第一行就把它扔掉了。

      in.readLine();  // in = BufferedReader or an other Reader
      records.forEach(record -> {
      ...
      

      【讨论】:

        【解决方案3】:

        指定该文件有要跳过的标题:

        CSVFormat.EXCEL.withHeader().withSkipHeaderRecord();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-25
          • 1970-01-01
          相关资源
          最近更新 更多