在CSV文件中包含逗号

时间:2016-08-08 09:40:05

标签: java csv export-to-excel export-to-csv

我目前正在处理CSV文件中的数据导入。 我无法决定一个需要添加到以逗号分隔的字段的变量。以下是数据 -

 "acNumber","Date","Code"
  12332,123  09/12/2012 1231

这是所需的格式。它是如何实际显示的

  "acNumber","Date","Code"
  12332        123   09/12/2012 ...

发送的实际数据是字符串&格式如下 -

"12332,13321","08/08/2016","1234"

我已尝试过以下可能的解决方案 -

1)使用建议here

的引号包围我的代码
""12332,13321""

我添加了两个双引号,因为引号中已经包含了这个值。我也试过单引号。

2)在最终输出字符串中逗号之前使用转义符(" \")

 "12332\,13321"

我已经搜索过它,仍然没有找到任何解决方案。请提供帮助。

4 个答案:

答案 0 :(得分:3)

如果你想要转义你的分隔符,这是一个逗号,你应该把内容放在双引号之间,所以如果你有12332,123,你应该把"12332,123"放在你的CSV文件中。

如果你想要在双引号之间转义内容,你可以将它放在两个新的双引号之间,这样会产生三个双引号,所以如果你有"12332,13321",你应该放"""12332,13321"""

答案 1 :(得分:1)

刚试过这个

a)包含在“”中似乎有效。您可以在代码中附加“”“并且它应该准备好了 enter image description here

编辑:我的不好,只看到Nicolos发布了相同的答案。他是对的

答案 2 :(得分:0)

可能这不是您正在寻找的答案。但是,我建议使用库来编写csv,例如来自apache commons的那个。它具有默认CSVFormat - s,例如一个Excel。这个lib非常易于配置,所以定制它相对容易。

通常,我建议将第三方库用于常见任务。

这是关于如何使用apache commons csv lib:

的代码片段
    List<String> record = Arrays.asList("acNumber","Date","Code");
    StringBuilder builder = new StringBuilder();
    try (CSVPrinter csvPrinter = new CSVPrinter(builder, CSVFormat.EXCEL)) {
        csvPrinter.printRecord(record);
    }

答案 3 :(得分:0)

我修好了。

愚弄我,忽视&#34; =&#34;在我的领域前。 我试图在不考虑它的情况下找到解决方案。后来我认为它是我价值的一部分,并且知道为什么它被使用。发现解决方案here。我将值重新格式化如下 -

"=""432234,23423"""