如何使用 BeanParser 读取具有重复列名的 csv 文件。
下面是示例标题
Col desc, Col 数量, Col desc, Col 数量
测试,12.44,测试2,43.44
您可以手动设置标题名称:
public class MyClass {
@Parsed(field = "amount1")
private BigDecimal amount1;
@Parsed(field = "amount2")
private BigDecimal amount2;
@Parsed(field = "description1")
private String description1;
@Parsed(field = "description2")
private BigDecimal description2;
}
然后:
CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setHeaderExtractionEnabled(true); //to read your input headers with duplicates.
parserSettings.setHeaders("description1", "amount1, "description2", "amount2"); //to override the headers in the input with the names you want to work with
然后解析:
List<MyClass> myList = new CsvRoutines(parserSettings).parseAll(MyClass.class, <input>);
您也可以使用字段索引代替注解中的字段名称,因此您无需担心标题名称。
希望这可以帮助