Apache POIAPIを使用してxlsx
ファイルを読み取るときに、最後の列のインデックスを取得するにはどうすればよいですか?
getLastRowNum
メソッドがありますが、列の数に関連するものが見つかりません...
編集:私はXLSX
ファイルを扱っています
行を繰り返し処理して、各行で HSSFRow.getLastCellNum()
を確認する必要があると思います。
各行を確認し、Row.getLastCellNum()
を呼び出します。最大セル番号は最後の列番号です。
Row r = sheet.getRow(rowNum);
int maxCell= r.getLastCellNum();
任意の行の値を持つ最後の列を知るには、最初に行を取得する必要があり、次に値を持つ最後の列を見つけることができます
構文:
sheet.getrow(RowNumber).getLastCellNum();
RowNumber
->は、値を持つ最後の列を知りたい行番号です
この機能を試してください:
private void maxExcelrowcol() {
int row, col, maxrow, maxcol;
//Put file name here for example filename.xls
String filename = "filename.xls";
static String TAG = "ExelLog";
//you can use 'this' in place of context if you want
Context context = getApplicationContext();
try {
// Creating Input Stream
File file = new File(context.getExternalFilesDir(null), filename);
FileInputStream myInput = new FileInputStream(file);
// Create a POIFSFileSystem object
POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
// Create a workbook using the File System
HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
// Get the first sheet from workbook
HSSFSheet mySheet = myWorkBook.getSheetAt(0);
//Row iterator
Iterator rowIter = mySheet.rowIterator();
while (rowIter.hasNext()) {
HSSFRow myRow = (HSSFRow) rowIter.next();
//Cell iterator for iterating from cell to next cell of a row
Iterator cellIter = myRow.cellIterator();
while (cellIter.hasNext()) {
HSSFCell myCell = (HSSFCell) cellIter.next();
row = myCell.getRowIndex();
col = myCell.getColumnIndex();
if (maxrow < row) {
maxrow = row;
}
if (maxcol < col) {
maxcol = col;
}
}
}
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}