Excel und Java

Status
Nicht offen für weitere Antworten.

Vril

Bekanntes Mitglied
Hi,
wollte mal fragen ob jemand weiss, ob man mit Java auch was programmieren kann das ein Excel-file öffnen und anzeigen kann? Weiter sollte es möglich sein in das geöffnete Excel-file zu schreiben und Werte auszulesen!

Geht das mit Java?
 

Vril

Bekanntes Mitglied
Schaut schon mal nicht schlecht aus! Danke!
Aber wo bekommt man das genau her:

import org.apache.poi.hssf.usermodel.*;

Bin da nicht ganz durchgestiegen!
 
R

Roar

Gast
Vril hat gesagt.:
Schaut schon mal nicht schlecht aus! Danke!
Aber wo bekommt man das genau her:

import org.apache.poi.hssf.usermodel.*;

Bin da nicht ganz durchgestiegen!
hast du dir die api runtergeladen?? :?
 

Vril

Bekanntes Mitglied
Ja, hab ich gerade!
Aber in dem Verzeichnis liegen die ganzen files dann als *.java und da meckert der compiler! Die müssen ja als *.class drin liegen? Also HSSFWorkbook.class und nicht HSSFWorkbook.java ?
 

Vril

Bekanntes Mitglied
Jetzt vermisse ich nur noch ein example wie man ein excel in gui (swing) anzeigt? Gibt es da keins oder hab ich es nur übersehen?
 

MPW

Top Contributor
Hallo,

ich brauche das auch, hab's mir mal runtergeladen, krieg's aber nicht hin:

Ich habe das Beispielprogramm(den Code) kopiert und beim compilieren in dem Verzeichnis wo die jars liegen hagelts immer Fehlermeldungen das der die ganzen Sachen nicht finden kann:

Code:
/**
 * This example shows how to use the event API for reading a file.
 */
public class EventExample
        implements HSSFListener
{
    private SSTRecord sstrec;

    /**
     * This method listens for incoming records and handles them as required.
     * @param record    The record that was found while reading.
     */
    public void processRecord(Record record)
    {
        switch (record.getSid())
        {
            // the BOFRecord can represent either the beginning of a sheet or the workbook
            case BOFRecord.sid:
                BOFRecord bof = (BOFRecord) record;
                if (bof.getType() == bof.TYPE_WORKBOOK)
                {
                    System.out.println("Encountered workbook");
                    // assigned to the class level member
                } else if (bof.getType() == bof.TYPE_WORKSHEET)
                {
                    System.out.println("Encountered sheet reference");
                }
                break;
            case BoundSheetRecord.sid:
                BoundSheetRecord bsr = (BoundSheetRecord) record;
                System.out.println("New sheet named: " + bsr.getSheetname());
                break;
            case RowRecord.sid:
                RowRecord rowrec = (RowRecord) record;
                System.out.println("Row found, first column at "
                        + rowrec.getFirstCol() + " last column at " + rowrec.getLastCol());
                break;
            case NumberRecord.sid:
                NumberRecord numrec = (NumberRecord) record;
                System.out.println("Cell found with value " + numrec.getValue()
                        + " at row " + numrec.getRow() + " and column " + numrec.getColumn());
                break;
                // SSTRecords store a array of unique strings used in Excel.
            case SSTRecord.sid:
                sstrec = (SSTRecord) record;
                for (int k = 0; k < sstrec.getNumUniqueStrings(); k++)
                {
                    System.out.println("String table value " + k + " = " + sstrec.getString(k));
                }
                break;
            case LabelSSTRecord.sid:
                LabelSSTRecord lrec = (LabelSSTRecord) record;
                System.out.println("String cell found with value "
                        + sstrec.getString(lrec.getSSTIndex()));
                break;
        }
    }

    /**
     * Read an excel file and spit out what we find.
     *
     * @param args      Expect one argument that is the file to read.
     * @throws IOException  When there is an error processing the file.
     */
    public static void main(String[] args) throws IOException
    {
        // create a new file input stream with the input file specified
        // at the command line
        FileInputStream fin = new FileInputStream(args[0]);
        // create a new org.apache.poi.poifs.filesystem.Filesystem
        POIFSFileSystem poifs = new POIFSFileSystem(fin);
        // get the Workbook (excel part) stream in a InputStream
        InputStream din = poifs.createDocumentInputStream("Workbook");
        // construct out HSSFRequest object
        HSSFRequest req = new HSSFRequest();
        // lazy listen for ALL records with the listener shown above
        req.addListenerForAllRecords(new EventExample());
        // create our event factory
        HSSFEventFactory factory = new HSSFEventFactory();
        // process our events based on the document input stream
        factory.processEvents(req, din);
        // once all the events are processed close our file input stream
        fin.close();
        // and our document input stream (don't want to leak these!)
        din.close();
        System.out.println("done.");
    }
}

hier die Fehlermeldungen:
Code:
C:\Programme\Java\POI\EventExample.java:5: cannot find symbol
symbol: class HSSFListener
        implements HSSFListener
                   ^
C:\Programme\Java\POI\EventExample.java:7: cannot find symbol
symbol  : class SSTRecord
location: class EventExample
    private SSTRecord sstrec;
            ^
C:\Programme\Java\POI\EventExample.java:13: cannot find symbol
symbol  : class Record
location: class EventExample
    public void processRecord(Record record)
                              ^
C:\Programme\Java\POI\EventExample.java:65: cannot find symbol
symbol  : class IOException
location: class EventExample
    public static void main(String[] args) throws IOException
                                                  ^
C:\Programme\Java\POI\EventExample.java:18: cannot find symbol
symbol  : variable BOFRecord
location: class EventExample
            case BOFRecord.sid:
                 ^
C:\Programme\Java\POI\EventExample.java:19: cannot find symbol
symbol  : class BOFRecord
location: class EventExample
                BOFRecord bof = (BOFRecord) record;
                ^
C:\Programme\Java\POI\EventExample.java:19: cannot find symbol
symbol  : class BOFRecord
location: class EventExample
                BOFRecord bof = (BOFRecord) record;
                                 ^
C:\Programme\Java\POI\EventExample.java:29: cannot find symbol
symbol  : variable BoundSheetRecord
location: class EventExample
            case BoundSheetRecord.sid:
                 ^
C:\Programme\Java\POI\EventExample.java:30: cannot find symbol
symbol  : class BoundSheetRecord
location: class EventExample
                BoundSheetRecord bsr = (BoundSheetRecord) record;
                ^
C:\Programme\Java\POI\EventExample.java:30: cannot find symbol
symbol  : class BoundSheetRecord
location: class EventExample
                BoundSheetRecord bsr = (BoundSheetRecord) record;
                                        ^
C:\Programme\Java\POI\EventExample.java:33: cannot find symbol
symbol  : variable RowRecord
location: class EventExample
            case RowRecord.sid:
                 ^
C:\Programme\Java\POI\EventExample.java:34: cannot find symbol
symbol  : class RowRecord
location: class EventExample
                RowRecord rowrec = (RowRecord) record;
                ^
C:\Programme\Java\POI\EventExample.java:34: cannot find symbol
symbol  : class RowRecord
location: class EventExample
                RowRecord rowrec = (RowRecord) record;
                                    ^
C:\Programme\Java\POI\EventExample.java:38: cannot find symbol
symbol  : variable NumberRecord
location: class EventExample
            case NumberRecord.sid:
                 ^
C:\Programme\Java\POI\EventExample.java:39: cannot find symbol
symbol  : class NumberRecord
location: class EventExample
                NumberRecord numrec = (NumberRecord) record;
                ^
C:\Programme\Java\POI\EventExample.java:39: cannot find symbol
symbol  : class NumberRecord
location: class EventExample
                NumberRecord numrec = (NumberRecord) record;
                                       ^
C:\Programme\Java\POI\EventExample.java:44: cannot find symbol
symbol  : variable SSTRecord
location: class EventExample
            case SSTRecord.sid:
                 ^
C:\Programme\Java\POI\EventExample.java:45: cannot find symbol
symbol  : class SSTRecord
location: class EventExample
                sstrec = (SSTRecord) record;
                          ^
C:\Programme\Java\POI\EventExample.java:51: cannot find symbol
symbol  : variable LabelSSTRecord
location: class EventExample
            case LabelSSTRecord.sid:
                 ^
C:\Programme\Java\POI\EventExample.java:52: cannot find symbol
symbol  : class LabelSSTRecord
location: class EventExample
                LabelSSTRecord lrec = (LabelSSTRecord) record;
                ^
C:\Programme\Java\POI\EventExample.java:52: cannot find symbol
symbol  : class LabelSSTRecord
location: class EventExample
                LabelSSTRecord lrec = (LabelSSTRecord) record;
                                       ^
C:\Programme\Java\POI\EventExample.java:69: cannot find symbol
symbol  : class FileInputStream
location: class EventExample
        FileInputStream fin = new FileInputStream(args[0]);
        ^
C:\Programme\Java\POI\EventExample.java:69: cannot find symbol
symbol  : class FileInputStream
location: class EventExample
        FileInputStream fin = new FileInputStream(args[0]);
                                  ^
C:\Programme\Java\POI\EventExample.java:71: cannot find symbol
symbol  : class POIFSFileSystem
location: class EventExample
        POIFSFileSystem poifs = new POIFSFileSystem(fin);
        ^
C:\Programme\Java\POI\EventExample.java:71: cannot find symbol
symbol  : class POIFSFileSystem
location: class EventExample
        POIFSFileSystem poifs = new POIFSFileSystem(fin);
                                    ^
C:\Programme\Java\POI\EventExample.java:73: cannot find symbol
symbol  : class InputStream
location: class EventExample
        InputStream din = poifs.createDocumentInputStream("Workbook");
        ^
C:\Programme\Java\POI\EventExample.java:75: cannot find symbol
symbol  : class HSSFRequest
location: class EventExample
        HSSFRequest req = new HSSFRequest();
        ^
C:\Programme\Java\POI\EventExample.java:75: cannot find symbol
symbol  : class HSSFRequest
location: class EventExample
        HSSFRequest req = new HSSFRequest();
                              ^
C:\Programme\Java\POI\EventExample.java:79: cannot find symbol
symbol  : class HSSFEventFactory
location: class EventExample
        HSSFEventFactory factory = new HSSFEventFactory();
        ^
C:\Programme\Java\POI\EventExample.java:79: cannot find symbol
symbol  : class HSSFEventFactory
location: class EventExample
        HSSFEventFactory factory = new HSSFEventFactory();
                                       ^
30 errors

Prozess beendet mit Exit-Code 1

Classpath:

.;C:\Programme\Java\POI\poi-2.5.1-final-20040804.jar;C:\Programme\Java\POI\poi-scratchpad-2.5.1-final-20040804.jar;C:\Programme\Java\POI\poi-contrib-2.5.1-final-20040804.jar

wo liegt der Fehler?
Die Datei wird aus C:\Programme\Java\POI\ kompiliert.
 

MPW

Top Contributor
Ja warum, ich dachte das läuft über den implements HSSF Listener?
(Außerdem ist das ja ein Beispielprogramm, das muss ja laufen, ohne es zu veränder, oder?)
 
R

Roar

Gast
hallo? glaubst du java kann hellsehen? du musst ihm schon sagen wo die klassen sind -> importieren!!
 
G

Gast

Gast
okay, du hattest recht, geht jetzt!

Aber ich verstehe immer noch nicht, warum die ein nichtfunktionierendes Beispiel online stellen, komisch..naja mit import-Anweisungen geht's jetzt.

Gibt's jetzt irgendein Toturial wie man das am Besten in Swing integriert?
 
R

Roar

Gast
Gast hat gesagt.:
Aber ich verstehe immer noch nicht, warum die ein nichtfunktionierendes Beispiel online stellen

vielleicht weil sie auf den gesunden programmiererverstand hoffen? :autsch: :wink:
 

Alex_winf01

Top Contributor
Hallo,

ich habe folgendes Problem mit POI:

Ich habe mir die poi-bin-2.5.1-final-20040804 heruntergeladen, entpackt und die jar-Files in den Ordner lib\ext unterhalb des Java-Heimatverzeichnises reingepackt. Anschließend habe ich auf dieses Verzeichnis die PATH-Umgebungsvariable gesetzt und in die CLASSPATH aufgenommen.

Nun wollte ich folgendes Programm ausprobieren:

Code:
package javafuerwindows.poi;

import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExcelDemo1 {
    
    public ExcelDemo1() {
        /*
         * 1. Schritt: Anlegen einer Arbeitsmappe
         */
        HSSFWorkbook mappe = new HSSFWorkbook();
        /*
         * 2. Schritt: ein Arbeitsblatt wird angelegt
         */
        HSSFSheet blatt = mappe.createSheet();
        /*
         * 3. Schritt: festlegen der Daten,
         *    die das Arbeitsblatt aufnehmen soll
         */
        String [] weine = {"Würzburger Stein", 
                "Volkacher Ratsherr", 
                "Röthenbacher Steinlaus", 
                "Speyerer Kaisertröpfchen"};
        int [] flaschen = {12, 6, 1, 7};
        /*
         * 4. Schritt: erzeugen der Zeilen
         */
        HSSFRow [] zeilen = new HSSFRow[4];
        for (int i = 0; i < 4; i++)
            zeilen[i] = blatt.createRow(4 + i);
        /*
         * 5. Schritt: erzeugen der Zellen
         *             und füllen mit den Daten
         */
        HSSFCell [] zellen = new HSSFCell[8];
        for (int i = 0; i < 4; i++) {
            zellen[i] = zeilen[i].createCell((short) 1);
            zellen[i].setCellValue(weine[i]);
        }
        for (int i = 0; i < 4; i++) {
            zellen[i + 4] = zeilen[i].createCell((short) 4);
            zellen[i + 4].setCellValue(flaschen[i]);
        }
        /*
         * 6. Schritt: speichern des Dokuments
         */
        try {
            FileOutputStream stream = new FileOutputStream("ExcelDemo1.xls");
            mappe.write(stream);
        } catch (Exception e) {
            System.err.println(e);
        }
    }
    
    public static void main(String [] args) {
        new ExcelDemo1();
    }
}

Nun kann der Compiler die ganzen importierten Package nicht finden, wie z. B. org.apache.poi.hssf.usermodel.HSSFCell.

Muss ich da noch was besonderes beachten? :bahnhof:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S Verbindung von einer Excel Datei zu Java-- Java Basics - Anfänger-Themen 4
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
D BETAVERT aus Excel auch in Java? Java Basics - Anfänger-Themen 4
B In Java erstellte Dateien in Excel verwenden Java Basics - Anfänger-Themen 4
M Excel in Java Java Basics - Anfänger-Themen 2
G wie funktioniert die Java Excel Api Java Basics - Anfänger-Themen 4
G Kann man Spalten in einer Excel-Tabelle mit Java löschen? Java Basics - Anfänger-Themen 3
S Export nach Excel in Java Java Basics - Anfänger-Themen 7
G Excel unter Java Java Basics - Anfänger-Themen 4
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
Trèfle EXCEL-File Laufwerkunabhängig einbinden. Java Basics - Anfänger-Themen 1
K Apache POI Excel Letzte Reihe einer bestimmten Spalte Java Basics - Anfänger-Themen 1
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
P Variablen in Excel speichern Java Basics - Anfänger-Themen 6
P String zerstückeln und in Excel einfügen Java Basics - Anfänger-Themen 11
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
S Kalenderwochen im Excel Java Basics - Anfänger-Themen 0
V Excel Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 4
X Verknüpfte Excel Felder mitändern Java Basics - Anfänger-Themen 6
S Wie bestehende Excel-Einträge mit neuen Vergleichen (mit Apache POI)? Java Basics - Anfänger-Themen 0
T Apache POI (Excel) - Probleme mit Zahlenformat Java Basics - Anfänger-Themen 2
F Excel und Poi Java Basics - Anfänger-Themen 12
T Zeilenweise Excel-Datei mit Strings befüllen Java Basics - Anfänger-Themen 28
P Excel-Tabelle erstellen Java Basics - Anfänger-Themen 4
R POI HSSF liesst in Excel Formel statt Ergebnis Java Basics - Anfänger-Themen 4
D println von excel $A$1 Java Basics - Anfänger-Themen 3
K JApplet zugriff auf Excel Datei Java Basics - Anfänger-Themen 3
D Werte aus Excel in Diagramm einfügen Java Basics - Anfänger-Themen 6
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
K Konvertierung von einem Text in eine Zahl in Excel(JXL) Java Basics - Anfänger-Themen 2
H Ausgabe nach Excel exportieren Java Basics - Anfänger-Themen 7
T Datum aus Excel prüfen Java Basics - Anfänger-Themen 2
D Abfragen ob Excel-Dateien Makros enthalten? Java Basics - Anfänger-Themen 4
Strahlungsleck Datentypen Apache Poi & Excel Datumsformat Java Basics - Anfänger-Themen 4
A POI Einlesen Excel Workbook aus BLOB oder von URL anstatt aus Filesystem ? Java Basics - Anfänger-Themen 3
B Abfragen eines Excel-Feldes auf null Java Basics - Anfänger-Themen 17
T Datei mit Excel öffnen Java Basics - Anfänger-Themen 2
D Speichern in Excel über Filechooser Java Basics - Anfänger-Themen 21
S Excel Textfeld auslesen Java Basics - Anfänger-Themen 6
S POI Excel sortieren Java Basics - Anfänger-Themen 4
M Probleme mit Excel Datei und JSP Java Basics - Anfänger-Themen 7
T Text aus Word in Excel formatieren Java Basics - Anfänger-Themen 3
T ins Excel exportieren. Java Basics - Anfänger-Themen 23
D excel datei Spalten lesen? Java Basics - Anfänger-Themen 7
M Object in Excel schreiben Java Basics - Anfänger-Themen 4
M HSSF - JTable zu Excel exportieren Java Basics - Anfänger-Themen 13
G Excel-Interface (J-Integra for COM) Java Basics - Anfänger-Themen 2
J POI: Leere Excel Zellen Java Basics - Anfänger-Themen 3
M Libraries für Arbeit mit Excel (Alternativen) Java Basics - Anfänger-Themen 2
E Schreiben in Excel -Zellen farbig darstellen Java Basics - Anfänger-Themen 4
G Excel in txt umwandeln Java Basics - Anfänger-Themen 1
G Zellen wie bei Excel? Java Basics - Anfänger-Themen 2
T Excel-Datei einlesen Java Basics - Anfänger-Themen 6
S Excel + Datenbank Java Basics - Anfänger-Themen 2
S Daten nach Excel Java Basics - Anfänger-Themen 12
M Auf Excel Datei zugreifen Java Basics - Anfänger-Themen 3
M Hashmap in Excel exportieren Java Basics - Anfänger-Themen 3
D Excel einlesen Java Basics - Anfänger-Themen 3
N Excel Anbindung an webservices Java Basics - Anfänger-Themen 2
J Probleme mit drucken aus Java Java Basics - Anfänger-Themen 3
Gokul Java chart library suggestion for web application? Java Basics - Anfänger-Themen 2
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
C Methoden Umlaute in Java Java Basics - Anfänger-Themen 18
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
G Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben