3

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

f1, f2, f3
1, 2, 3

我尝试解析它:

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

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

我错了什么?

4

3 回答 3

4

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

CSVFormat.EXCEL.withHeader().withSkipHeaderRecord();
于 2020-05-27T14:13:23.197 回答
1

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

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

于 2017-11-09T20:46:13.320 回答
0

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

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

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

in.readLine();  // in = BufferedReader or an other Reader
records.forEach(record -> {
...
于 2019-03-24T23:00:52.720 回答