Сопоставление CSVRecord не найдено, ожидается один из PK
Я пытаюсь разобрать файл *.xlsx
public static void initialize(String fileName) throws IOException {
Reader reader = new FileReader(fileName, StandardCharsets.UTF_8);
CSVParser csvParser = new CSVParser(reader, CSVFormat.EXCEL.withFirstRecordAsHeader().withIgnoreHeaderCase().withTrim());
for (CSVRecord record : csvParser) {
System.out.println(record.toString());
String amount = record.get("Amount");
String abcDate = record.get("abcDate");
System.out.println(amount + " and " + abcDate);
}
csvParser.close();
}
Выдает ошибку
CSVRecord [comment='null', recordNumber=1, values=[?ˆ9LìÒ™ÈsbgÙ®|Èl!õùUSh9i°bžr:"y_dlÀóD›¿ý|-NœÈR"4ø2ÏGÇ% õZ´4ñË?yÄ7 ëÈðÉ‚‹¨Þ
Exception in thread "main" java.lang.IllegalArgumentException: Mapping for Amount not found, expected one of [PK
at org.apache.commons.csv.CSVRecord.get(CSVRecord.java:103)
Я пробовал с разными StandardCharsets
(ISO_8859_1, UTF-16, UTF-16BE, UTF16-LE). Это все еще вызывает ошибку. Я что-то пропустил?