dimanche 26 avril 2015

Geschlossen: Apache POI - Excel einlesen

Hallo zusammen,
ich versuche ein Programm zu schreiben, welches Daten aus einer Exceldatei liest und verarbeitet.
Bisher habe ich das Einlesen und eine Ausgabe der Informationen auf der Console.
Mein Problem ist, dass der Inhalt des Excel-Sheets nur bis Zeile 27 ausgelesen wird.
Die Datei ist aber viel länger.

Ich bin für jede Hilfe dankbar.

Java Code:

  1. import java.io.File;import java.io.FileInputStream;
  2. import java.io.FileNotFoundException;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.sql.Date;
  6. import java.util.HashMap;
  7. import java.util.Iterator;
  8. import java.util.Map;
  9. import java.util.Set;
  10. import javax.swing.*;
  11. import org.apache.poi.ss.usermodel.Cell;
  12. import org.apache.poi.ss.usermodel.Row;
  13. import org.apache.poi.xssf.usermodel.XSSFSheet;
  14. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  15.  
  16.  
  17. public class Read {
  18.  
  19.  
  20. public static void main(String[] args){
  21. JFileChooser chooser = new JFileChooser();
  22. int var = chooser.showOpenDialog(null);
  23. int rowe = 0;
  24. int celle = 0;
  25. if(var == JFileChooser.APPROVE_OPTION){
  26. try{
  27.  
  28.  
  29. FileInputStream fis = new FileInputStream(chooser.getSelectedFile());
  30.  
  31.  
  32. // Finds the workbook instance for XLSX file
  33. XSSFWorkbook myWorkBook = new XSSFWorkbook (fis);
  34.  
  35. // Return first sheet from the XLSX workbook
  36. XSSFSheet mySheet = myWorkBook.getSheetAt(0);
  37.  
  38. // Get iterator to all the rows in current sheet
  39. Iterator<Row> rowIterator = mySheet.iterator();
  40.  
  41. // Traversing over each row of XLSX file
  42. while (rowIterator.hasNext()) {
  43. Row row = rowIterator.next();
  44.  
  45.  
  46. // For each row, iterate through each columns
  47. Iterator<Cell> cellIterator = row.cellIterator();
  48. while (cellIterator.hasNext()) {
  49.  
  50.  
  51. Cell cell = cellIterator.next();
  52.  
  53.  
  54. switch (cell.getCellType()) {
  55. case Cell.CELL_TYPE_STRING:
  56. System.out.print(cell.getStringCellValue() + "\t");
  57. break;
  58. case Cell.CELL_TYPE_NUMERIC:
  59. System.out.print(cell.getNumericCellValue() + "\t");
  60. break;
  61. case Cell.CELL_TYPE_BOOLEAN:
  62. System.out.print(cell.getBooleanCellValue() + "\t");
  63. break;
  64. case Cell.CELL_TYPE_FORMULA:
  65. System.out.print(cell.getStringCellValue() + "\t");
  66. break;
  67. default :
  68. System.out.print(cell.getStringCellValue() + "\t");
  69. break;
  70. }
  71. }
  72. System.out.println("");
  73. }
  74. }
  75. catch(Exception e){
  76. }
  77. }}
  78. }


Ich nutze Apache POI 3.11Beta2
Meine weiteren Ressourcen sind:
poi-3.11-beta2.jarcommons-codec-1.9.jar
poi-ooxml-3.11-beta2.jar
poi-ooxml-schemas-3.11-beta2.jar
xmlbeans-2.6.0.jar
stax-api-1.0.1.jar

Als Anleitung habe ich das hier verwendet:
How to Read, Write XLSX File in Java - Apach POI Example | Java67

Vielen Dank für Eure Hilfe!!!

****
Habe den Fehler gefunden es gab ein Problem mit den Zelltypen.


Geschlossen: Apache POI - Excel einlesen

0 commentaires:

Enregistrer un commentaire