亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有換行符的 CSVPrinter

帶有換行符的 CSVPrinter

手掌心 2021-10-17 10:59:13
我正在使用 org.apache.commons.csv.CSVPrinter (Java 8) 來生成一個從 DB RecordSet 開始的 CSV 文本文件。我的數據庫表中有一個描述字段,用戶可以在其中插入他想要的任何內容,例如新行!當我在 Excel 或 Google 電子表格上導入 CSV 時,每行在描述中都有一個換行符,顯然會破壞 CSV 結構。我應該手動替換/刪除這些字符還是有辦法配置 CSVPrinter 以自動刪除它?謝謝大家。F編輯:這里是一個代碼片段:    CSVFormat csvFormat = CSVFormat.DEFAULT.withRecordSeparator("\n").withQuoteMode(QuoteMode.ALL).withQuote('"');    CSVPrinter csvPrinter = new CSVPrinter(csvContent, csvFormat);    // 準備從數據庫收集的字符串列表。我明確使用 String 數組,因為我需要在將其寫入 CSV 之前對 DB 內容執行一些文本編輯    List fasciaOrariaRecord = new ArrayList();    時間bandRecord.add(...);    時間bandRecord.add(...);    // ...    csvPrinter.printRecord (csvHeader);    // 更多行...    csvPrinter.close();
查看完整描述

1 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

任何帶有行結尾的值都應該用引號轉義。如果您的 CSV 庫沒有自動為您執行此操作,我建議您使用univocity-parsers。在您的特定情況下,您可以使用一個預先構建的例程將數據庫內容轉儲到 CSV 中。


嘗試這個:


ResultSet resultSet = statement.executeQuery("SELECT * FROM table");


//Get a CSV writer settings object pre-configured for Excel

CsvWriterSettings writerSettings = Csv.writeExcel(); 

writerSettings.setHeaderWritingEnabled(true); //writes the column names to the output file


CsvRoutines routines = new CsvRoutines(writerSettings);

//use an encoding Excel likes

routines.write(resultSet, new File("/path/to/output.csv"), "windows-1252");

希望這可以幫助。


免責聲明:我是這個庫的作者。它是開源且免費的(Apache 2.0 許可)


查看完整回答
反對 回復 2021-10-17
  • 1 回答
  • 0 關注
  • 387 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號