2010-02-03 8 views

ответ

17

Я думаю, что вы будете должны проходить через строки и проверять HSSFRow.getLastCellNum() на каждом из них.

+1

Для XLSX файлов единственное, что вы должны изменить это HSSF к XSSF. XSSFRow.getLastCellNum() –

3

Проверить каждую строку и позвонить Row.getLastCellNum() Максимальный номер ячейки - это номер последнего столбца.

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

Чтобы узнать последний столбец, который имеет значение любой строки, Прежде всего, необходимо, чтобы получить строку, а затем вы можете найти последний столбец, который имеет ценность

Синтаксис:
sheet.getrow (RowNumber) .getLastCellNum();

RowNumber -> это номер строки, для которых вы хотите знать, последний столбец, который имеет ценность

0

Попробуйте эту функцию:

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

Спасибо за ваш ответ. Было бы здорово, если бы вы также добавили несколько комментариев к вашему коду. Это помогает людям лучше понять ваш ответ. – hofmeister

 Смежные вопросы

  • Нет связанных вопросов^_^