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 ファイルで同様の問題に直面した人はいますか? どんな助けでも大歓迎です。
ありがとう、アリハント