1

次のようなExcelファイルがあります。

エクセルファイル

for ループを使用して両方の値を取得し、for ループの外からそれらにアクセスしたいと考えています。どちらも xml 要素の値として使用されます。私はこのようなコードを書いています:

        String longSec = null;
        Double long_sec = null;
        int column_long_sec = 33;
        int c;

        for(c=1; c<=2; c++) {

                row = sheet.getRow(c);

                    long_sec = row.getCell(column_long_sec).getNumericCellValue();
                    longSec = Double.toString(long_sec);
        }   

        Element sid_long_sec = document.createElement("SID_LONG_SEC");
        document.appendChild(sid_long_sec);
        sid_long_sec.appendChild(document.createTextNode(longSec));

コードは次のような出力を提供します。

<SID_LONG_SEC>54.61</SID_LONG_SEC>

しかし、コードで次のような出力が得られるようにしたい:

<SID_LONG_SEC>48.94</SID_LONG_SEC>
<SID_LONG_SEC>54.61</SID_LONG_SEC>

どうやってするか?

どんなアイデアや助けも大歓迎です

よろしくお願いします、

ユヌス

4

2 に答える 2

4

ループの外側で要素を作成しているので、longSec の最後の値のみを取ります。

これ

Element sid_long_sec = document.createElement("SID_LONG_SEC");
document.appendChild(sid_long_sec);
sid_long_sec.appendChild(document.createTextNode(longSec));

ループ内にある必要があります

于 2013-06-05T16:16:39.723 に答える
2

ループ内ですべてを行うのはどうですか?

    String longSec = null;
    Double long_sec = null;
    int column_long_sec = 33;
    int c;

    for(c=1; c<=2; c++) {
        row = sheet.getRow(c);
        long_sec = row.getCell(column_long_sec).getNumericCellValue();
        longSec = Double.toString(long_sec);
        Element sid_long_sec = document.createElement("SID_LONG_SEC");
        document.appendChild(sid_long_sec);
        sid_long_sec.appendChild(document.createTextNode(longSec));
    }   

XML 処理をループの外に残したい場合は、Excel ファイルから読み取った値を何らかのコンテナー (配列またはコレクション) に保存し、別のループを作成して、そのコンテナーを反復処理し、値をXML。

于 2013-06-05T16:16:27.640 に答える