Anzeige

Einlesen eines ExcelSheets


Sohle

Grünschnabel
#1
Hallo alle zusammen,

ich bin neu in der Foren Szene und bräuchte Hilfe bei meinem Code.
In meinem Programm wähle ich ein ExcelSheet aus und lese es in Java ein, anschließend soll das ganze in einem anderem Format gespeichert werden.
Bis gestern hat mein Programm noch funktioniert. Bevor ich weiter am Programm gearbeitet habe habe ich noch eine Kopie abgelegt falls mein neuer Code Schrott ist.
Ich habe dann das tüffteln angefangen, bin aber auf keinen grünen Zweig gekommen also habe ich meine Kopie wieder eingespielt die mal funktioniert hatte.
Nun geht mein Programm aber nur noch zur hälfte.
Ich kann das ExcelSheet auswählen, aber es wird nichts eingelesen.
Ebenso wird keine SDF-Datei erstellt.

Ich hoffe ihr könnt mir helfen den Fehler zu finden
Es wurden keine Updates oder der gleichen eingespielt.

Ich danke schon im voraus für eure Hilfe
Unten ist mein Code der vorher mal funktioniert hat, es aber jetzt nicht mehr tut.

Java:
package NewSYSSTOExport;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;

import java.io.File;
import java.io.FileInputStream;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFileChooser;

import java.io.FileWriter; 
import java.io.PrintWriter;


public class Excel 
{
   

    public static void main (String [] args)
    {
       
        SimpleDateFormat date = new SimpleDateFormat( "yyyyMMdd"); 
        Date currentTime = new Date(); 
        System.out.println(date.format(currentTime));
       
        JFileChooser chooser = new JFileChooser();
        int variable = chooser.showOpenDialog(null); //Festlegen welcher Button gedrückt werden soll/ Händische auswahl der Datei
       
        if(variable == JFileChooser.APPROVE_OPTION)//Überprüfung ob der richtige Button gedrückt wurde
        {
            try
            {
                //Liest den Inhalt der Datei ein die ausgewählt wurde
               
                HSSFWorkbook datei = new HSSFWorkbook(new FileInputStream(chooser.getSelectedFile()));
                Sheet blatt = datei.getSheetAt(0);
               
                PrintWriter p = new PrintWriter (new FileWriter(new File("D:/DE-SOhlendorf/Desktop/NewSYSSTO" + date.format(currentTime) + ".sdf")));//
                File f = new File("STO.sdf");
               
                for(Row reihe : blatt)// liest Reihe für Reihe bis es zu einer gelagt die nicht beschrieben ist
                {
                    for(Cell zelle : reihe)//liest jede Zelle einer Reihe
                    {
                        zelle.setCellType(Cell.CELL_TYPE_STRING);//Convertiert jede Zelle in einen String, so muss nicht darauf geachtet werden welche Zelle welche Art von Inhalt hat
                    //    System.out.print(zelle.getStringCellValue() + ";");//Gibt jede Zelle aus, nach jeder Zelle wird ein Simikolon eingefügt
                        String z = zelle.getStringCellValue() + ";";
                       z = z.replace("ä","ae");
                       z = z.replace("ö","oe");
                       z = z.replace("ü","ue");
                       z = z.replace("ß","ss");
                       z = z.replace("/"," ");
                        p.print(z);
                   
                    }
                    // System.out.println("");//Fügt nach jeder Zeile einen Zeilenumbruch ein 
                    String r = "";
                    p.print(r);
                }
                p.close();
       
            }
            catch(Exception e)
            {

            }
           
        }
    }
}
 

Sohle

Grünschnabel
#4
Update:

Er wirft mir jetzt folgende Meldung raus. Ich verwende aber ein .xls 95 97 2003 Format.
Trotzdem diese Meldung

org.apache.poi.hssf.OldExcelFormatException: The supplied spreadsheet seems to be Excel 5.0/7.0 (BIFF5) format. POI only supports BIFF8 format (from Excel versions 97/2000/XP/2003)
 
Anzeige
Anzeige