打开CSV:如何在将SQL转储导出到CSV时转义逗号

时间:2017-01-02 12:40:19

标签: java opencsv

我使用开放式CSV将SQL转储导出为CSV。在其中一个专栏中,我有很多逗号。导出为CSV后,数据会在每个逗号上分割。我怎么能逃脱逗号?

    con = DriverManager.getConnection(url, user, password);
    pst = con.prepareStatement("SELECT * FROM Cars");
    rs = pst.executeQuery();

    writer = new CSVWriter(new FileWriter("cars.csv"), 
            DEFAULT_SEPARATOR, NO_QUOTE_CHARACTER);
    writer.writeAll(rs, true);

实际数据:

LINESTRING (184317.646019852 55192.7039821837, 184361.902992529 55174.2199648116)

我得到了什么

COLUMN-1                                            COLUMN-2
LINESTRING (184317.646019852 55192.7039821837      184361.902992529 55174.2199648116)

1 个答案:

答案 0 :(得分:1)

如果您真的想要生成与RFC 4180标准兼容的CSV:

realm.where(Class1.class).in("objects.field1",["COMPLETE", "INPROGESS"]).equalTo("objects.field2", "f3").findAll()

只需删除6. Fields containing line breaks (CRLF), double quotes, and !!!commas!!! should be enclosed in double-quotes. For example: "aaa","b CRLF bb","ccc" CRLF zzz,yyy,xxx 选项即可。

过度你应该找到另一个库,它可以生成与CSV不兼容的分隔格式(例如,如果你想使用NO_QUOTE_CHARACTER来表示转义逗号而不是双引号)。