2017-01-02 18 views
0

Я использую открытый CSV для экспорта SQL-дампа в CSV. В одном из столбцов у меня много запятых. После того, как я экспортирую в CSV, данные становятся разделенными на каждую запятую. Как я могу избежать запятой?Открыть CSV: как избежать запятой при экспорте SQL-дампа в 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

Если вы действительно хотите создать CSV, совместимый с RFC 4180 стандарта:

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 

просто удалите NO_QUOTE_CHARACTER вариант.

С другой стороны, вы должны найти другую библиотеку, которая может генерировать разделительные форматы, не совместимые с CSV (т. Е. Если вы хотите использовать \ для пропущенных запятых вместо двойных кавычек).