我正面臨着一個由引號引起的問題,同時試圖將數據插入到csv文件中。 我有兩個要素:20" 和BI 通過這句話運行後:由java創建csv文件
writers[k].write("\"" + tablelist.get(k).get(i)[j] + "\",");
他們會被顯示爲:
"20",","BI"
CSV文件,將它在細胞呈現20" BI」,而不是兩個獨立的元素。
誰能給我建議,就如何解決這個問題?
我正面臨着一個由引號引起的問題,同時試圖將數據插入到csv文件中。 我有兩個要素:20" 和BI 通過這句話運行後:由java創建csv文件
writers[k].write("\"" + tablelist.get(k).get(i)[j] + "\",");
他們會被顯示爲:
"20",","BI"
CSV文件,將它在細胞呈現20" BI」,而不是兩個獨立的元素。
誰能給我建議,就如何解決這個問題?
呃...使用opencsv,在任何情況下都不要試圖自己解析或編寫CSV。有太多的邊緣案例,這是處理。如果要追加,請首先輸入read the CSV in,然後將字符串數組添加到列表中,並將write it out添加到列表中。還有其他用於Java的CSV庫可以以類似的方式工作。
使用不同的曲ote字符然後"
。您可以在打開csv文件時配置將哪些字符視爲報價。
取而代之的是
writers[k].write("\"" + tablelist.get(k).get(i)[j] + "\",");
添加引號字符,然後選擇一個你不太可能在您的數據得到這樣
String quote = "|";
writers[k].write(quote + tablelist.get(k).get(i)[j] + quote +",");
然後當你打開這(取決於程序)您可以對其進行配置,以便|
用作報價
在Libre Office,它應該詢問您何時雙擊csv文件
在MS Excel中(取決於版本),你打開excel,然後從文本導入,然後它應該給你選擇然後。
如果報價無法更改會怎麼樣?它在我需要解析的文件中,並且每次出現時都無法更改它們 – WangMango
爲什麼報價無法更改?您只需在您的代碼行中更改它們....'writers [k] .write(「\」「+ tablelist.get(k).get(i)[j] +」\「,」);' –
RFC 4180 Common Format and MIME Type for Comma-Separated Values (CSV) Files
2.7:
如果雙引號用於封裝字段,然後一個雙引號 一個領域內出現必須由具有 另一雙引號前面逃跑了。例如:
"aaa","b""bb","ccc"
但正如其他人所說的,這將是更好地使用處理這些細節爲你的庫。
爲什麼不使用一些CSV庫(例如http://supercsv.sourceforge.net/)? –