1

JDK 1.4 と Apache POI 3.2 を使用して XLS (2007 形式) ファイルを読み込もうとしています。ファイルには、テキスト形式の行がいくつかあります(右クリック->セルの書式設定->テキスト)。

新しく追加された行の形式がRAWになると仮定して、テキストの書式設定を行わずに、手動でファイルにさらにいくつかの行を追加しました。

POI は後で追加された行を読み取ることができません。新しく追加された行も TEXT にフォーマットされている場合にのみ、それらを読み取ることができます。

コードは次のようになります。

HSSFSheet sheet = workBook.getSheetAt(sheetno);
int rowStart =  sheet.getFirstRowNum();
//int rowEnd = sheet.getLastRowNum();
int rowEnd =    sheet.getPhysicalNumberOfRows();
for (int rowNum = rowStart; rowNum <= rowEnd; rowNum++)
        {
            HSSFRow row = (HSSFRow) sheet.getRow(rowNum);
            Vector cellStoreVector=new Vector();
            int current = 0, next = 1;

            for (int colNum = row.getFirstCellNum(); colNum < row.getLastCellNum(); colNum++)
            {
                HSSFCell cell = (HSSFCell) row.getCell(colNum);             
                currentCell = cell.getColumnIndex();
                current = cell.getColumnIndex();
                if (current < next)
                {
                    cellStoreVector.addElement(cell);
                }
                else 
                {
                    int loop = current - next;
                    for (int k = 0; k < loop + 1; k++)
                    {
                        cellStoreVector.addElement("");
                        next = next + 1;
                    }
                }
                next = next + 1;                                        
            }
      }

私がこれまでに試したこと:

1) RowIterator オブジェクトを使用してから、while ループを使用して反復します。

Iterator rowIter = sheet.rowIterator();
while(rowIter.hasNext()) - Results in the same no. of rows being iterated.

2) 活用

 sheet.getPhysicalNumberOfRows(); and
 sheet.getLastRowNum();- Results in the same no. of rows being iterated.

以前に Excel ファイルで同様の問題に直面した人はいますか? どんな助けでも大歓迎です。

ありがとう、アリハント

4

0 に答える 0