2010-02-03 21 views

Répondre

17

Je pense que vous doit parcourir les lignes et vérifier HSSFRow.getLastCellNum() sur chacune d'entre elles.

+1

Pour XLSX fichiers la seule chose que vous devez changer est HSSF à XSSF. XSSFRow.getLastCellNum() –

3

Vérifiez chaque ligne et appelez Row.getLastCellNum() le nombre de cellules max est le dernier numéro de colonne.

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

Pour apprendre à connaître la dernière colonne qui a une valeur de chaque ligne, vous devez d'abord obtenir la ligne et vous pouvez trouver la dernière colonne qui a une valeur

Syntaxe:
sheet.getrow (RowNumber) .getLastCellNum();

RowNumber -> est le numéro de ligne pour lequel vous voulez connaître la dernière colonne qui a une valeur

0

Essayez cette fonction:

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

Merci pour votre réponse. Ce serait génial si vous ajouteriez également quelques commentaires à votre code. Cela aide les gens à mieux comprendre votre réponse. – hofmeister