Excel File einlesen und Überschrift prüfen

beta20

Top Contributor
Hallo zusammen,

sorry erstmal, ich komme gerade nicht wirklich weiter.
Ich versuche ein Excelfile einzulesen und möchte dann jedes Mal prüfen, ob die Spalte eine entsprechende Überschrift hat.
Wenn ja, dann den Wert der Zelle einem Objekt zuweisen.
Also in der zweiten While - Schleife brauche ich dann eben mehrere IF - Abfragen um zu prüfen, wie die Überschrift (erste Zeile) heißt...

Hier mein bisherige Code, allerdings stimmt hier etwas nicht, u.a. bei header_cell = header_cell.getStringCellValue();
Java:
public void uploadContentExcelFile(String inputFilePath, String uploadType) throws IOException {

        String excelFilePath = inputFilePath;
        FileInputStream inputStream = new FileInputStream(new File(excelFilePath));

        Workbook workbook = new XSSFWorkbook(inputStream);
        Sheet firstSheet = workbook.getSheetAt(0);
        Iterator<Row> iterator = firstSheet.iterator();

        // Find the Column number Which has column name and row number 0
        Row header_row = firstSheet.getRow(0);

        while (iterator.hasNext()) {

            Row nextRow = iterator.next();
            Iterator<Cell> cellIterator = nextRow.cellIterator();

            for (int i = 0; i <= iterator.length - 1; i++) {
               
            }
            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();
               
                XSSFCell header_cell = header_row.getCell(cellIterator);
                 String header = header_cell = header_cell.getStringCellValue();
               
                if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
                    if (cell.getRichStringCellValue().getString().trim().equals("Test")) {
                       
                    }
                }

            }

        }

        // workbook.close();
        inputStream.close();
    }


Danke für jede Hilfe
 
Wenn du einfach nur den String haben willst sicherlich so in der Art:
Java:
String header = header_cell.getStringCellValue();
 
ok, danke
Aber ich brauche im cellIterator jedes Mal die header_cell
Hier stimmt noch etwas nicht - siehe hier:
XSSFCell header_cell = header_row.getCell(nextRow.get);
Ich brauche hier irgendwas wie einen index, wie mache ich das ?

Code:
    public void uploadContentExcelFile(String inputFilePath, String uploadType) throws IOException {

        String excelFilePath = inputFilePath;
        FileInputStream inputStream = new FileInputStream(new File(excelFilePath));

        Workbook workbook = new XSSFWorkbook(inputStream);
        Sheet firstSheet = workbook.getSheetAt(0);
        Iterator<Row> iterator = firstSheet.iterator();

        // Find the Column number Which has column name and row number 0
        Row header_row = firstSheet.getRow(0);

        while (iterator.hasNext()) {

            Row nextRow = iterator.next();
            Iterator<Cell> cellIterator = nextRow.cellIterator();

            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();

                XSSFCell header_cell = header_row.getCell(nextRow.get);
                String header = header_cell.getStringCellValue();
             
                if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
                    if (cell.getRichStringCellValue().getString().trim().equals("Test")) {
                     
                    }
                }

            }

        }

        // workbook.close();
        inputStream.close();
    }
 
Wenn dun einfach nur den Typ und den Textinhalt überprüfen möchtest, brauchsdt du keine XSSFCell, sondern kannst einfach mit der Cell weiterarbeiten:
Java:
   while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
        String header = cell.getStringCellValue();
        if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
            if (cell.getRichStringCellValue().getString().trim().equals("Test")) {
            }
        }
    }
 

Zurück
Oben