2016-11-23 47 views
2

我目前正試圖將數據寫入Excel的報告。我可以將數據寫入csv文件,但是它不會以我想要的順序在excel中出現。我需要在每列中以最佳和最差的適應度打印數據,而不是在平均值下打印。下面是相關的代碼,任何幫助,將不勝感激:Java CSV寫作

String [] Fitness = "Average fitness#Worst fitness #Best Fitness".split("#"); 
    writer.writeNext(Fitness); 

    //takes data from average fitness and stores as an int 
    int aFit = myPop.individuals[25].getFitness(); 
    //converts int to string 
    String aFit1 = Integer.toString(aFit); 
    //converts string to string array 
    String aFit2 [] = aFit1.split(" "); 
    //writes to csv 
    writer.writeNext(aFit2); 
    //String [] nextCol = "#".split("#"); 



    int wFit = myPop.individuals[49].getFitness(); 
    String wFit1 = Integer.toString(wFit); 
    String wFit2 [] = wFit1.split(" "); 
    writer.writeNext(wFit2); 

    int bFit = myPop.individuals[1].getFitness(); 
    String bFit1 = Integer.toString(bFit); 
    String bFit2 [] = bFit1.split(" "); 
    writer.writeNext(bFit2); 

enter image description here

+0

謝謝你,現在正在工作,非常感謝你的幫助。 – Jackington

+1

刪除你的問題呢? – Alex

+0

我會在一分鐘內刪除你! – Jackington

回答

0

從文檔在 CSVWriter.html#writeNext(java.lang.String[])

public void writeNext(String[] nextLine) - 下一行寫入文件。

字符串數組提供是

一個字符串數組,以作爲一個單獨的條目中的每個以逗號分隔的元件。

您正在編寫3行而不是1行,並且您編寫的每行都包含一個帶有單個條目的數組。

writer.writeNext(aFit2); 
writer.writeNext(wFit2); 
writer.writeNext(bFit2); 

解決方案: 創建具有所有3項(列值)的單個陣列和寫,一旦在一行。

0

我想你應該再打電話給你「writeNext」方法,每行DATAS的:

String [] Fitness = "Average fitness#Worst fitness #Best Fitness".split("#"); 
writer.writeNext(Fitness); 

int aFit = myPop.individuals[25].getFitness(); 
String aFit1 = Integer.toString(aFit); 

int wFit = myPop.individuals[49].getFitness(); 
String wFit1 = Integer.toString(wFit); 

int bFit = myPop.individuals[1].getFitness(); 
String bFit1 = Integer.toString(bFit); 

writer.writeNext(new String[]{aFit1, wFit1, bFit1}); 
0

我假設你正在使用CSVWriter寫入到一個CSV文件。請確保在一個問題中提供儘可能多的細節,這使得其他人更易讀。

正如可以從CSVWriter的文檔看到:

空隙writeNext(字符串[] nextLine)

下一行寫入到文件中。

writeNext方法實際上是將數組寫入文件的一行。從你的代碼:

writer.writeNext(aFit2); 
writer.writeNext(wFit2); 
writer.writeNext(bFit2); 

因此,而不是做這個'字符串aFit2 [] = aFit1.split(」「); 創建值的數組,然後傳遞數組writeNext

舉個例子,你可以考慮你自己的例子通過列名的數組,被寫在一個單行:

writer.writeNext(Fitness);