【发布时间】:2018-09-07 07:05:03
【问题描述】:
我有一个 CSV 文件(excel),其中每个数据都可以在像 excel 这样的单元格中使用。我正在使用 Apache CSV 来解析 excel 类型的 csv。在解析数据时,我的每个字符之间都被空字符分隔。这个 CSV 文件我从不同的来源获得,但是当我复制相同的 excel csv 文件数据并手动制作一个 excel csv 文件时,我的下面的代码能够获得所需的输出。
我的代码:
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"));
}
当我检查空白字符的 ASCII 值时,我得到 '0' 因为值表示空字符。
【问题讨论】:
-
这是 ASCII 还是 Unicode ?这看起来像一个编码问题
-
@Marged 是对的。除了 CVS 元数据(标题、列类型……),要读取任何类型的文本文件,您需要知道编写器使用的字符编码。发件人应与您沟通,您应保留并使用它,否则沟通失败。
-
大家好,CSVFormt.EXCEL 是如何为您工作的,它根本不适合我。你能看看我发布的这个问题stackoverflow.com/questions/67964627/…
标签: java csv excel-2010 apache-commons-csv