Открыть CSV: открыть CSV, как показать символ цитаты только в одном поле - PullRequest
0 голосов
/ 29 мая 2020

Я использую библиотеку OpenCsv для создания файла .csv в моем приложении Spring Boot. Мне нужно поместить символ двойной квоты в начале и в конце только одного поля, избегая в остальных.

Вот это поле с именем описание , которое я не хочу избегать " ,

"\"" + description.replaceAll(",","").replaceAll("\"","").replaceAll("\n","").replaceAll("\r","") + "\""

Вот моя реализация CSVWriter,

StatefulBeanToCsv<DtoClass> beanToCsv = new StatefulBeanToCsvBuilder<DtoClass>(writer)
                .withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
                .withMappingStrategy(mapStrategy)
                .withSeparator(',')
                .build();

beanToCsv.write(dtoList);

Но когда я вижу в результате .csv файл, библиотека добавляет дополнительный "в начало и конец ,

Например: строка, которую я передаю:

"Export Logs and save it for future reference."

Что записывается в полученный файл .csv,

""Export Logs and save it for future reference.""

Как мне избежать эта дополнительная двойная кавычка?

Моя среда: Spring Boot 2.2.4 | Java 8 | com.opencsv: opencsv: 5.1

1 Ответ

0 голосов
/ 29 мая 2020

Не уверен, можно ли изменить библиотеку, но это проще в jackson-dataformat-csv

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-csv</artifactId>
    <version>2.6.3</version></dependency>

CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(objects).withHeader();
schema = schema..withoutQuoteChar();
...