Frage Wie bekomme ich die Excel-Datei zum Lesen der letzten Spalte?


Wie bekomme ich den Index der letzten Spalte beim Lesen eines xlsx Datei mit der Apache POI API?

Da ist ein getLastRowNum Methode, aber ich kann nichts in Bezug auf die Anzahl der Spalten finden ...


BEARBEITEN: Ich habe es zu tun XLSX Dateien


9
2018-02-03 18:16


Ursprung


Antworten:


Ich denke, Sie müssen durch die Reihen iterieren und überprüfen HSSFRow.getLastCellNum() auf jedem von ihnen.


18
2018-02-03 19:11



Überprüfen Sie jede Zeile und rufen Sie an Row.getLastCellNum() Die maximale Zellennummer ist die letzte Spaltennummer.

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

5
2017-09-01 20:12



Probieren Sie diese Funktion aus:

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
2018-03-06 13:08



Um die letzte Spalte mit dem Wert einer Zeile kennenzulernen, müssen Sie zuerst die Zeile abrufen und dann die letzte Spalte mit dem Wert

Syntax :

sheet.getrow(RowNumber).getLastCellNum();

RowNumber -> ist die Zeilennummer, für die Sie die letzte Spalte mit Wert wissen möchten


0
2018-01-15 02:47