1

Excelファイルから読み取るためにapache poiを使用していますが、空のセルになるとセルをスキップします。なぜそうなのですか?それをキャッチするために if else 条件を配置しました。これが私のコードです:

while (cellIterator.hasNext()) {

    cell = (XSSFCell) cellIterator.next();
        if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC)
        {
            if(DateUtil.isCellDateFormatted(cell))
            {
4

2 に答える 2

4

CellIterator は、null セルの繰り返しをサポートしていません。そのようなセルは自動的にスキップされます。この動作を変更するには、特定の行のセル (0 ベースのインデックスを使用) を手動で反復する必要があります。

同じ例をここで説明します。

于 2013-08-12T05:41:05.980 に答える
2

私はその問題に対する良い解決策を見つけました。存在するかどうかに関係なく、すべてのセルを取得したい場合は、イテレータは適していません。代わりに、適切なセルを手動でフェッチする必要があります。セル ポリシーが欠落している可能性があります。

for(Row row : sheet) {
   for(int cn=0; cn<row.getLastCellNum(); cn++) {
       // If the cell is missing from the file, generate a blank one
       // (Works by specifying a MissingCellPolicy)
       Cell cell = row.getCell(cn, Row.CREATE_NULL_AS_BLANK);
       // Print the cell for debugging`enter code here`
       System.out.println("CELL: " + cn + " --> " + cell.toString());
   }
}

できます。これにより、不足しているすべての行が空白に変換され、CELL_TYPE_BLANK がそれをキャッチします。

于 2013-08-12T08:19:22.677 に答える