无引号的JAVA CSV写入空间
我正在使用ApacheCommonsCSV库来编写CSV文件 提供给我的样品有一个奇怪的图案 预期样本输出:无引号的JAVA CSV写入空间,java,csv,apache-commons,spaces,Java,Csv,Apache Commons,Spaces,我正在使用ApacheCommonsCSV库来编写CSV文件 提供给我的样品有一个奇怪的图案 预期样本输出: 姓名及名称、电话、行动、日期 “John Doe,警官”,正在调查中,2017年6月8日 杰克,+123-4567,虚假指控,2017年6月4日 可以看到,“名称和名称”列的值可以用逗号表示。所以他们需要被引用。 但是,有些值中有空格,例如phone no,它只能是空格,或者Action列,其中的值可以包含空格(中间或结尾) 现在,当我使用ApacheCommons库编写CSV时,我
- 姓名及名称、电话、行动、日期
- “John Doe,警官”,正在调查中,2017年6月8日
- 杰克,+123-4567,虚假指控,2017年6月4日
- 姓名及名称、电话、行动、日期
- “John Doe,警官”,正在调查中,2017年6月8日
- 杰克,+123-4567,“虚假指控”,2017年6月4日
CsvWriterSettings settings = Csv.writeExcel();
settings.trimValues(false); //values are trimmed by default
settings.setHeaders("Name with designation","Phone","Action","Date");
settings.setHeaderWritingEnabled(true);
StringWriter output = new StringWriter();
CsvWriter writer = new CsvWriter(output, settings);
writer.writeRow("John Doe,Officer"," ","Under investigation","8-Jun-2017");
writer.writeRow("Jack","+123-4567","False Allegation ","4-Jun-2017");
writer.close();
System.out.println(output);
输出将是:
Name with designation,Phone,Action,Date
"John Doe,Officer", ,Under investigation,8-Jun-2017
Jack,+123-4567,False Allegation ,4-Jun-2017
希望能有帮助
免责声明:我是这个图书馆的作者。它是开源和免费的(Apache 2.0许可证)您可以使用。接下来是
写道:
Aa, ," John ""Doe""","Comma,",test
Maven依赖性:
<!-- https://mvnrepository.com/artifact/net.sf.supercsv/super-csv -->
<dependency>
<groupId>net.sf.supercsv</groupId>
<artifactId>super-csv</artifactId>
<version>2.4.0</version>
</dependency>
net.sf.sv
超级csv
2.4.0
这就是我在发布此问题后使用的库。虽然ApacheCommons更易于使用其包装器调用,但SuperCSV也完成了这项工作。发现apache commons中有一个代码,只要最后一个字符代码是Cool lib,它就会在值周围加引号!我也会尝试一下:)……在发布了这个问题之后,我最终使用了apache commons,这也达到了目的。**最终使用超级csvThanks进行了尝试。如果性能成为一个问题,那么请再次查看它。下面是许多不同解析器之间的比较:
Aa, ," John ""Doe""","Comma,",test
<!-- https://mvnrepository.com/artifact/net.sf.supercsv/super-csv -->
<dependency>
<groupId>net.sf.supercsv</groupId>
<artifactId>super-csv</artifactId>
<version>2.4.0</version>
</dependency>