Excel-Tabelle/Diagramm in JFrame anzeigen - JAVA

Hallo,
ich wollte mal fragen ob es möglich ist eine Excel-Datei samt Daten und Grafiken in einem JFrame anzeigen zulassen?
Ich benötige eigentlich die gleiche Funktion die auch PowerPoint nutzt wenn man Verknüpfte Excel-Tabellen abbildet, da wird ja auch immer geschaut nach dem Aktuellstenstand und anschließden wird es 1:1 in der PowerPoint angezeigt.

Ich hoffe ihr könnt mir ein paar tipps und Anregungen nennen?
Gruß
Fizzo361

Schau mal hier http://poi.apache.org/

Gruß

vielen dank XhoanXoroDaxos,

jedoch ist es damit nicht möglich Diagramme aus der Excel-Datei in das JFrame zu „Kopieren“

ich möchte ja keine Daten ändern oder in die Datei schreiben sondern lediglich das mir ein Zellenbereich Bsp. von A1-A18 und das bis D1-D18 davon den gsamten Bereich in einem JFrame anzeigt.

Aber danke für deine Hilfe
hast du sonst noch eine Idee?

Gruß
Fizzo361

vielen dank XhoanXoroDaxos,

jedoch ist es damit nicht möglich Diagramme aus der
Excel-Datei in das JFrame zu „Kopieren“

ich möchte ja keine Daten ändern oder in die Datei schreiben
sondern lediglich das mir ein Zellenbereich Bsp. von A1-A18
und das bis D1-D18 davon den gsamten Bereich in einem JFrame
anzeigt.

Aber danke für deine Hilfe
hast du sonst noch eine Idee?

Ach so du möchtest nur das Diagramm aus der Range anzeigen. Du könntest in dem JFrame eine Html-Seite anzeigen lassen (wie das mit Swing geht musst du mal googlen ich hatte so was mal mit java-swt gemacht(swing ist mir zu hässlich und verbraucht auch mehr Resourcen als swt)…aber schau dir mal JEditorPane an, damit sollte es gehen). Die htmlseite machst du mit googlecharts
https://developers.google.com/chart/interactive/docs…

ist besonders bei bestehenden spreadsheets „sau“ einfach zu implementieren.

Ansonsten geht das auch mit poi und JFreeChart:
http://thinktibits.blogspot.com.au/2012/12/Java-POI-…

Gruß XXD

Meinungsaustausch :wink:
Ich hab beide Möglichkeiten nur überflogen und kenne mich mit JS fast nicht aus…

Doof finde ich beim HTML- /JS-Ansatz, dass mein (ggf nicht vorhandener) Server eine Query-URL bieten muss (?). Es könnte ja auch eine Anwendung sein, die eine lokale DB hat und daher gar keinen Web- / Servlet- / EJB-Container / Websocket oder was es sonst noch so gibt braucht.

Da es um ein Excel-File geht würde ich vermuten, dass diese Datei sowieso lokal existiert - sonst würde ich nicht den Aufwand über POI (zumindest clientseitig) betreiben um ein Chart zu erstellen. Dann würde ich beim persitieren eher ein paar Tabellenspalten mehr in kauf nehmen als ein Blob in der DB zu speichern (ermöglicht einem auch m.M.n. mehr)… Dem Client würde ich nur das geben was er fürs Anzeigen des Chart braucht um den Traffic zu minimieren.

Daher würde ich den POI + JFreeChart bevorzugen.

Wie siehst du das?

Gruß

Hallo Jo,

sorry hab deine Antwort erst jetzt gelesen.

Ich hab beide Möglichkeiten nur überflogen und kenne mich mit
JS fast nicht aus…

Doof finde ich beim HTML- /JS-Ansatz, dass mein (ggf nicht
vorhandener) Server eine Query-URL bieten muss (?).

Für HTML und JS brauchst du keinen Server …erst einmal.

Es könnte
ja auch eine Anwendung sein, die eine lokale DB hat

z.B. eine Dateibasierte wie sqlite…würde ich bei Softwareentwicklung und kleineren Projekten vorziehen.

und daher
gar keinen Web- / Servlet- / EJB-Container / Websocket oder
was es sonst noch so gibt braucht.

Braucht man auch nicht um HTML und JS in Java auszuführen.

Da es um ein Excel-File geht würde ich vermuten, dass diese
Datei sowieso lokal existiert

Dateiverwaltung ist „immer“ eine schlechte Wahl…man kann Dateibasierte Datenbanken nehmen.

  • sonst würde ich nicht den
    Aufwand über POI (zumindest clientseitig) betreiben um ein
    Chart zu erstellen.

Du sagst es Aufwand! Jede Excel-Datei kann man in einem Rutsch in eine DB tranferieren. Googlecharts ist das einfachste ohne wenig Aufwand zu einem extrem guten Ziel zu kommen z.B. Animierte Charts.

Dann würde ich beim persitieren eher ein
paar Tabellenspalten mehr in kauf nehmen als ein Blob in der
DB zu speichern (ermöglicht einem auch m.M.n. mehr)

Den Datentyp Blob brauchst du gar nicht in dem Fall.

Client würde ich nur das geben was er fürs Anzeigen des Chart
braucht um den Traffic zu minimieren.

Wo kein Server ist, ist kein Traffic…das ganze läuft lokal (ohne Server).

Daher würde ich den POI + JFreeChart bevorzugen.

Ist halt eine programmatische Lösung hat sicher seine Vorteile, ist aber definitiv erst einmal mehr Arbeit + wird es nicht so schön aussehen

Wie siehst du das?

Javascript/CSS wird auch auf dem Desktopbereich Einzug erhalten und sich auch durchsetzen (Eclipse E4) hat ja schon Ansätze drinnen, Apple hat im neuen Yosemite (und schon vorher) auch diesen Weg eingeschlagen. Stichwort: Javascript Widget Entwicklung.

Selbst nimmt man die Webtechnologie Vaadin (rein programmatisch Anwendungsentwicklung -> hier finde ich das super) und im Unterbau werden (Charts per Javascript, Ajax-Request usw.) abgehandelt, ohne das man nur einen Funken JS oder HTML können muss (an CSS in dem Fall Sass) kommt man auch dort nicht drum herum.
Was ich damit sagen möchte ist, dass ich eine reine Programmierung schon vorziehen würde, wenn das Ergebnis stimmt (z.B. aussehen) und das bietet halt JFreeChart aus meiner Ansicht nicht, von daher sehe ich es als verlorene Zeit sich damit zu beschäftigen.
Und würde lieber googlecharts in einer Javaanwendnung verwenden.

Gruß XXD