Как читать CSV-файл Excel с использованием Apache CSV

У меня есть файл CSV (Excel), в котором все данные доступны в ячейке, как Excel. Я использую Apache CSV для разбора Excel типа CSV. При разборе данных каждый мой символ разделяется нулевым символом между ними. Этот CSV-файл я получаю из другого источника, но когда я копирую одни и те же данные CSV-файла Excel и вручную создаю CSV-файл Excel, мой приведенный ниже код может получить желаемый результат.

Мой CSV Excel:
MyCSVExcel.jpg

Мой код:

InputStream is =null;
Reader in =null;
is = new ByteArrayInputStream(excelCSVFile);

in = new InputStreamReader(is);

CSVParser parser = new CSVParser(in, CSVFormat.EXCEL.withHeader("EMPLOYEE_ID","NAME","DOJ",
                    "MOBILE_NO").withSkipHeaderRecord(true).withTrim(true));

List<CSVRecord> records = parser.getRecords();

for (CSVRecord record : records) {

System.out.println("Employee Id::"+record.get("EMPLOYEE_ID"));

System.out.println("Employee Name::"+record.get("NAME"));

}

Я получаю вывод здесь приведенным выше кодом:
MyOutput

Когда я проверил значение ASCII для пустого символа, я получил "0", поскольку значение означает нулевой символ.

Я искал, чтобы получить вывод, как это:
ActuallOutput

1 ответ

is = new FileInputStream(excelCSVFile);

вместо

is = new ByteArrayInputStream(excelCSVFile);

Также обратите внимание, что поля чувствительны к регистру.

Другие вопросы по тегам