2010-02-03 9 views

Odpowiedz

17

myślę będziesz musieć powtórzyć przez rzędy i sprawdzić HSSFRow.getLastCellNum() na każdym z nich.

+1

Dla XLSX pliki jedyną rzeczą, którą trzeba zmienić jest HSSF do XSSF. XSSFRow.getLastCellNum() –

3

Sprawdź każdy wiersz i zadzwoń pod numer Row.getLastCellNum(), gdzie maksymalny numer komórki jest ostatnim numerem kolumny.

Row r = sheet.getRow(rowNum); 
int maxCell= r.getLastCellNum(); 
0

Aby poznać ostatnią kolumnę, która ma wartość dowolnego rzędu, najpierw trzeba uzyskać wiersz, a następnie można znaleźć ostatnią kolumnę, która ma wartość

Składnia:
sheet.getrow (RowNumber) .getLastCellNum();

RowNumber -> to numer wiersza, dla którego chcesz wiedzieć ostatnią kolumnę, która ma wartość

0

Spróbuj funkcję:

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(); 
    } 
} 
+0

Dzięki za odpowiedź. Byłoby wspaniale, gdybyś dodał kilka komentarzy do swojego kodu. Pomaga to ludziom lepiej zrozumieć Twoją odpowiedź. – hofmeister

Powiązane problemy