2013-10-10 188 views
0

我正面臨着一個由引號引起的問題,同時試圖將數據插入到csv文件中。 我有兩個要素:20" 和BI 通過這句話運行後:由java創建csv文件

writers[k].write("\"" + tablelist.get(k).get(i)[j] + "\","); 

他們會被顯示爲:

"20",","BI" 

CSV文件,將它在細胞呈現20" BI」,而不是兩個獨立的元素。

誰能給我建議,就如何解決這個問題?

+6

爲什麼不使用一些CSV庫(例如http://supercsv.sourceforge.net/)? –

回答

4

呃...使用opencsv,在任何情況下都不要試圖自己解析或編寫CSV。有太多的邊緣案例,這是處理。如果要追加,請首先輸入read the CSV in,然後將字符串數組添加到列表中,並將write it out添加到列表中。還有其他用於Java的CSV庫可以以類似的方式工作。

+0

我對Maven或pom文件一無所知。有沒有關於如何構建opencsv.jar的文檔? – Daniel

+1

http://maven.apache.org/run-maven/index.html#Quick_Start首次在Google上遭遇... – hd1

2

使用不同的曲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,然後從文本導入,然後它應該給你選擇然後。

+1

如果報價無法更改會怎麼樣?它在我需要解析的文件中,並且每次出現時都無法更改它們 – WangMango

+0

爲什麼報價無法更改?您只需在您的代碼行中更改它們....'writers [k] .write(「\」「+ tablelist.get(k).get(i)[j] +」\「,」);' –