2016-11-23 10 views
2

現在、レポートのExcelにデータを書き込もうとしています。私はcsvファイルにデータを書き込むことができますが、私が望む順番でExcelには出てこない。私は、各列の最高と最悪の適合度の下で印刷するデータを、平均の下にすべて印刷する代わりに印刷する必要があります。ここに関連するコードは、任意の助けをいただければ幸いです。Java CSV Writing

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) でドキュメントから - ファイルに次の行を書き込みます。提供する

String配列は

個別のエントリとして各コンマで区切られた要素を持つ文字列配列です。

あなたは1ではなく3つの別々の行を書いており、書き込む各行には1つのエントリを持つ配列が含まれています。

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

対処: は全て3つのエントリ(列値)を有する単一の配列を作成し、単一の行に一度それを書き込みます。

0

私はあなたが件のデータの行ごとに一度あなたの「writeNext」メソッドを呼び出す必要だと思う:

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

私はCSVファイルへの書き込みにCSVWriterを使用していると仮定しています。可能な限り多くの詳細を質問に記入してください。他の人にはもっと読みやすくなります。

あなたがCSVWriterの文書から見ることができるように:

無効writeNext(String []型nextLine)

は、ファイルに次の行を書き込みます。

writeNextメソッドは実際にはファイルの個々の行に配列を書き込みます。あなたのコードから:だから

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

、代わりにやってこの `文字列aFit2 [] = aFit1.split(」「);

writer.writeNext(Fitness); 
: 値の配列を作成し、例として writeNext

にその配列を渡す、あなたは、単一の行に書き込まれます、列名の配列を、渡す例を所有して考えることができます