2013-07-19 20 views
4

我寫了一個Java類來生成CSV文件中寫入只有一個格。 只有一個由行單元格,包含所有的單元格,這樣的分離逗號:書面CSV文件每

header1,header2,header3 
1,support,test 
2,alpha,gamma 

我在做什麼錯?

編輯:

要在輸出

我有更精確: 「頭1,標題2,header3」, 「」, 「」

我想: 「頭1 「,」header2「,」header3「

這是我的輸出。每行都在一個唯一的單元格中。

""Position","Mail","Invitations","Qualified invitations"" 
    ""1","xxxxx.com","129","23"" 
    ""2","xxxx.com","54","8"" 
    ""3","xxxx.com","197","5"" 
    ""4","xxxx","13","5"" 
    ""5","xxxx","8","4"" 
    ""6","xxxx.com","4","4"" 
    ""7","xxx.com","31","3"" 
    ""8","xxx.com","30","3"" 
    ""9","xxx.com","18","3"" 
    ""10","xxx.com","13","3"" 
+0

該輸出有什麼問題?看起來對我好 –

+0

我不會把電子郵件和東西放在這裏。問題在於一行有一個單元格。這就像逗號分隔不起作用。所以我有:「header1,header2,header3」,「」,「」而不是「header1」,「header2」,「header3」 – EoiFirst

回答

0

也許這樣會更好。乾杯!

result += \"+data.asText()+\"; 
0

您是否嘗試在結果屬性周圍加上引號;

result += "\""+data.asText()+"\""; 

記住我不熟悉jsondata對象。

此外,您應該逐行寫入每行,而不是在最後添加所有內容。

是的,看看內置的CSVReader和CSVWriter。

+0

我遵循你的建議,結果相同。 – EoiFirst

+0

好吧,試着將它寫入控制檯,看看實際產生了什麼(結果變量),你可以把它放在這裏... – WattoWatto

+0

好吧,你已經注意到了,生成的數據會混亂 – WattoWatto

0

嘗試增加周圍的頭字段報價:

private static String REFERRAL_HEADER = "\"Position\",\"Mail\",\"Invitations\",\"Qualified invitations\"\n"; 
private static String TOPS_HEADER = "\"Position\",\"Mail\",\"Number of conferences\",\"Number of new contacts\", \"Average conf duration\"\n"; 
+0

我試過了,因爲我使用CSVWriter它只是導致「」Position「」,因爲CSVWriter已經把引號 – EoiFirst

0

我想你的代碼的一個子集,在常規外殼和我得到正確的結果:

groovy:000> string = new java.io.StringWriter() 
===> 
csv = new CSVWriter(string) 
===> [email protected] 
groovy:000> csv.writeNext(REFERRAL_HEADER.split(",")) 
===> null 
groovy:000> string.toString() 
===> "Position","Mail","Invitations","Qualified invitations" 

您可以嘗試使用commons-csv代替該CSVWriter。該庫有點時髦,因爲它是針對數據庫量身定做的。