1

私が達成しようとしているのは、私が持っている配列要素と同じ数の列の各セルにデータの配列を書き込むことです。私もExcelでこのようになりたい:

buyer | parts |  price| quantity  | comments
tom   | blah  | 546   | 5         |   blah
      |  blah | 56    |  67       |

私のファイルにはこれよりも多くの列がありますが、簡単な例を挙げたいと思います。また、私の問題を引き起こすのは、配列データセットが完了したら、ライターが配置されている最後の行に次の列を印刷したくないため、その最初の行に配置したいということです。これを達成するために他のライブラリを調べましたが、私のニーズを満たすと思われるものは何も見つかりません。CSV ファイルの性質上、空白のセルを手動で追加しない限り、これを行うことができない場合があることは理解していますが、これを行う他の方法はありますか?

Enumeration <String> paramNames = request.getParameterNames();
        while(paramNames.hasMoreElements()) 
        {
            String paramName = (String)paramNames.nextElement();
                            writer.append(paramName);
            writer.append(',');
            String[] paramValues = request.getParameterValues(paramName);
            if (paramValues.length == 1)
            {
                String paramValue = paramValues[0];
                if (paramValue.length() == 0)
                {
                    writer.append("No Value");
                    writer.append('\n');
                }
                else
                {
                    writer.append(paramValue);
                    writer.append('\n');
                }
            }
            else
            {
                for(int i = 0; i<paramValues.length; i++)
                {
                    writer.append(paramValues[i]);
                    writer.append(',');
                }
                writer.append('\n');
            }
            previousname = paramName;

        }
        writer.flush();
        writer.close();
    }

また、このデータがどこから来ているかを明確にするために、フォームの真ん中にある JSP テーブルなので、テーブルにある値の配列を読み込んでいます。

4

2 に答える 2

1

から: http://javacodeonline.blogspot.ca/2009/09/java-code-to-write-to-csv-file.html

/** The below Java Code writes 
 * some data to a file in CSV
 * (Comma Separated Value) File
 */

package developer;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class MakeCSVFile {

    public static void main(String[] args) throws IOException {

        //Note the "\\" used in the path of the file 
        //instead of "\", this is required to read 
        //the path in the String format.
        FileWriter fw = new FileWriter("D:\\JavaCodeFile\\WriteTest.csv");
        PrintWriter pw = new PrintWriter(fw);

        //Write to file for the first row
        pw.print("Hello guys");
        pw.print(",");
        pw.print("Java Code Online is maing");
        pw.print(",");
        pw.println("a csv file and now a new line is going to come");

        //Write to file for the second row
        pw.print("Hey");
        pw.print(",");
        pw.print("It's a");
        pw.print(",");
        pw.print("New Line");

        //Flush the output to the file
        pw.flush();

        //Close the Print Writer
        pw.close();

        //Close the File Writer
        fw.close();        
    }
}

おそらく、ハード プリントを実行する代わりに、配列のループを実行し、各値をコンマで区切って出力します。

何かのようなもの :

Array array;

    Iterator<String> iter = array.iterator();
    while (iter.hasNext())
    {
        object = iter.next();
        pw.print(object.getBuyer());
        pw.print(",");
        pw.print(object.getTitle());
        ..          
    }
于 2012-07-31T17:32:24.267 に答える
0

Java で CSV ファイルを作成する場合は、OpenCSVライブラリの使用を検討してください。

于 2012-07-31T17:58:00.800 に答える