0

Apache POI を使用して Excel シートからセルを抽出しました。すべて正常に動作しています。しかし、空のセルがある場合は常に、次の正しいセル データが出力として得られます。しかし、後者の値が存在する場合、目的の出力が来ています。

これが私が書いたロジックです。

    Iterator<Row> rowIterator=sheet.rowIterator();
    while(rowIterator.hasNext())
    {

        ExtractedRowsString extRows=new ExtractedRowsString();
        ArrayList<HSSFCell> list=new ArrayList<HSSFCell>();
        HSSFRow row=(HSSFRow) rowIterator.next();

        Iterator<Cell> cellIterator=row.cellIterator();
        while(cellIterator.hasNext())
        {
            HSSFCell cell=(HSSFCell)cellIterator.next();
            list.add(cell); 
        }
        if(check)
        {
            addBean(list,extRows);
            print(extRows);
        }

        check=true;

    }

何が問題なのですか?

編集済み:

public static void addBean(ArrayList list,ExtractedRowsString extRows)
{
    for(int i=0;i<list.size();i++)
    {
        switch(i)
        {
            case 0:
                extRows.setSchool_success_id((list.get(i)).toString());
                break;
            case 1:
                extRows.setPem_id( (list.get(i)).toString() );
                break;  
            case 2:
                extRows.setDistrict_code((list.get(i)).toString());
                break;
            case 3:
                extRows.setDistrict((list.get(i)).toString());
                break;

        }
    }
}
4

2 に答える 2

3

ドキュメントから:

cellIterator

public java.util.Iterator cellIterator()

定義: インターフェース Row 内の cellIterator

戻り値: 物理的に定義されたセルのセル反復子。反復子は未定義 (null) のセルを返さないため、4 番目の要素はセル 4 ではない可能性があることに注意してください。返されたセルで getCellNum() を呼び出して、それらがどのセルであるかを確認します。これは物理的に定義されたセルでのみ機能するため、Row.MissingCellPolicy は効果がありません。

つまり、空のセルは反復子に表示されないため、取得したセルを常に確認する必要があります。

于 2010-03-18T12:33:51.527 に答える
0

ArrayList は null の追加を許可します。また、addBean メソッドは何を行っていますか (null または空の文字列をスキップしますか?) 実行できる小さな作業コードを投稿できますか?

于 2010-03-18T12:32:23.000 に答える