如何使用apache csv读取excel的csv文件

时间:2018-03-28 14:25:59

标签: java csv excel-2010 apache-commons-csv

我有一个CSV文件(excel),其中每个数据都可以像excel一样在单元格中使用。我使用Apache CSV来解析excel类型的csv。在解析数据时,我的每个字符之间都被空字符分隔开。这个CSV文件来自不同的来源但是当我复制相同的excel csv文件数据并手动制作excel csv文件时,我的下面的代码能够获得所需的输出。

我的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值时,我得到&#39; 0&#39; ,因为值表示空字符。

我希望得到这样的输出:
ActuallOutput

1 个答案:

答案 0 :(得分:0)

is = new FileInputStream(excelCSVFile);

而不是

is = new ByteArrayInputStream(excelCSVFile);

另请注意,这些字段区分大小写。