0

大きなxmlファイルを読み取り、そこからExcelファイルを作成するプログラムを作成しています。各ノードの属性は、Excelファイルの列ヘッダーになります。Domオブジェクトを作成し、ノードリストを取得しました。それを反復処理する必要があり、ノードごとに、ノードの属性値を列値として使用してExcelシートに行を追加する必要があります。したがって、反復するときは、行を動的に作成する必要があります。どうすればいいですか?作成した行をapachePOIに追加する機能は見当たりません。これまでのところ、私が見たのは、毎回新しい行を定義することです。5000以上のエントリがあるのでできません。基本的に私がやりたいことは:

    Node node = null;
    HSSFRow datarow = null;
    for (int i = 0; i < nodeList.getLength(); i++) {
        node = nodeList.item(i);
        datarow = spreadSheet.createRow(i);
        //set values for data row here, and add it.
        //so in the loop, next time the same variable will be assigned to spreadSheet.createRow(1) etc.
    } 

createRowがspreadSheetから呼び出され、行が追加されることを理解しています。しかし、ループでは、同じ変数が他の行にも割り当てられるため、最終的には1行しか取得できないと思います。これについて私にアドバイスしてください。

4

1 に答える 1

0

以下を試してください

   Node node = null;
    HSSFRow datarow = null;
    for (int i = 0; i < nodeList.getLength(); i++) {
        // On each loop you get the value of node item
        node = nodeList.item(i);
        //For every new node list you will create a row 
        datarow = spreadSheet.createRow(i);
        //Finally set the node value to the columns of the newly created Row
    } 

お役に立てれば !!

于 2012-06-28T04:25:24.843 に答える