Daten aus Word auslesen

Hallo zusammen,
Kann mir jemand sagen, wie man mit Java Daten aus einer Word-Datei auslesen kann?
Danke

Hi Zaya,

Kann mir jemand sagen, wie man mit Java Daten aus einer
Word-Datei auslesen kann?

mir wĂĽrde dazu einfallen, ĂĽber Java die OpenOffice.org API anzusprechen, damit das Word Dokument zu laden. Und dann darĂĽber auf die Daten zuzugreifen. Evlt. gehts aber auch viel einfacher, kommt darauf an, was genau du da raus lesen willst.

http://api.openoffice.org/

Alles Gute wĂĽnscht
… Michael

Kann mir jemand sagen, wie man mit Java Daten aus einer
Word-Datei auslesen kann?

mir wĂĽrde dazu einfallen, ĂĽber Java die OpenOffice.org API
anzusprechen, damit das Word Dokument zu laden. Und dann
darĂĽber auf die Daten zuzugreifen. Evlt. gehts aber auch viel
einfacher, kommt darauf an, was genau du da raus lesen willst.

http://api.openoffice.org/

Gute Idee mit OpenOffice !!!

Ich habe es versucht direkt aus Java auf .doc-Format zuzugreifen. Es gab’ damals noch kein OpenOffice ( oder war nicht so bekannt ) Es gab’ damals die Möglichkeit von OLE-Objekten und ActiveX. Dies war aber nur auf Windows beschränkt. Das Ganze war schlecht dokumentiert und instabil. ;-(

Verfolge besser die Idee mit OpenOffice.

GruĂź,

Robert

erstmal danke.
Ich habe viele Word-Dokumente, in denen nur Texte in tabellenähnlicher Form stehen. wie z.B.
„Name = Test
Vorname = Test1
Geburtsdatum = 01.01.2000
Beruf =
Familienstand = ledig
…
Beschreibung:
Das ist ein Test“
Jetzt möchte ich diese Daten mit Java auslesen und in einer CSV-Datei reinschreiben.
Ich habe gesehen, dass Jakarta POI-HWPF zwar in sehr frĂĽhen Entwicklungsstand ist, aber immerhin einfache Dateien lesen und schreiben kann.
Kennt sich jemand damit aus?
Danke

Hallo

Evtl. auch mal Richtung POI schauen:
http://jakarta.apache.org/poi/overview.html

Gruss
Patrick

hier ne kommerzielle lösung
hallo

von der firma infoZoom gibt es das produkt jacoZoom:

http://www.infozoom.de/de_jacoZoom.shtml

es handelt sich dabei um ein framework, mit dem du dir java-wrapper-klassen für alle möglichen com-objekte generieren lassen kannst. damit hast du (fast) vollständigen zugriff auf das gesammte word-api. der java-code schaut damit fast wie ein vba-makro aus (zumindest was datentypen und methodennamen betrifft).

das ganze ist allerdings ein kommerzielles produkt und kostet etwas.

wir haben das produkt bei uns im einsatz, um den internet explorer direkt in einem java-fenster einzubinden. damit können wir mit wenig aufwand beliebige dokumenttypen in java anzeigen lassen (sofern die jeweiligen anwendungen installiert sind - versteht sich). bisher war das ganze ziemlich stabil.

vorteil im vergleich zur lösung mit openoffice.org bzw. dem jakarta-poi-irgendwas: du verwendest direkt das word-api und hast damit vermutlich am wenigsten probleme was kompatibilität zu irgendwelchen word-spezialitäten betrifft.

nachteil: kostet was

lg
erwin

Hallo Erwin,
Danke fĂĽr deine ausfĂĽhrliche Antwort. Das was ich machen will, ist nur eine einmalige Sache, von daher lohnt sich nicht, extra einen Tool zu kaufen.
aber das ist sehr nett von dir.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Patrick,
Hast du schon mit POI was gemacht? Daten aus Word ausgelesen?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

Hast du schon mit POI was gemacht? Daten aus Word ausgelesen?

Nein, habe ich nicht, aber anhand der Beispiele (+ API-Doku)
sollte das fuer Einsteiger kein Problem sein.

http://jakarta.apache.org/poi/hwpf/quick-guide.html

Die OpenOffice-Variante finde ich allerdings auch nicht schlecht.
OpenOffice ist in Bezug auf Word sicher weiter als POI.

Gruss
Patrick

hi nochmal

was hindert dich daran, die word-dateien aus word heraus im text-format zu speichern? du willst ja offenbar eh nur den text an sich weiterverarbeiten, nicht die formatierung. das geht dann aus java heraus ohne jedes problem.

lg
erwin

guten Morgen,

Die Daten mĂĽssen ja danach in CSV-Format abgespeichert sein.
Also, z.B.:
Name; Vorname; Geburtsdatum
Test; Vortest; 01.01.2000
…
Oder was meinst du damit, ohne Probleme aus Java heraus lesbar?

GruĂź
Zaya

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Patrick,

Ich habe es schon gesehen. Aber ich finde nirgendwo die .jar-Datei.

GruĂź
Zaya

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

Ich habe es schon gesehen. Aber ich finde nirgendwo die
.jar-Datei.

http://apache.autinity.de/jakarta/poi/release/bin/

Gruss
Patrick

Danke

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hi Zaya

wieso csv?? wenn du das word-dokument als nur-text abspeicherst, hast du eine text-datei mit genau dem selben inhalt wie das word-dokument, nur ohne formatierungen. diese text-datei kannst du mit normalen java-mitteln parsen - also z.b. zeilenweise einlesen und auf bestimmte schlüsselworte prüfen. wie genau kann ich nicht sagen - habe ja das word-dokument nicht. wäre natürlich schön, wenn word ein csv liefert, weil das etwas leichter zu interpretieren ist, muss aber nicht sein.

das mit dem als text speichern kann man auch automatisieren: im word ein makro erstellen, dass das aktuelle dokument im selben pfad mit dem selben namen nur mit endung txt abspeichert. von java aus kann man dann word so starten, dass es automatisch dieses makro startet:

winword /mmakroname filename.doc

(vielleicht etwas herumprobieren - word zickt manchmal mit den pfadnamen herum)

das java-programm wartet, bis die txt-datei da ist - fertig.

voraussetzung natĂĽrlich: dein java-programm arbeitet auf einen windows-pc, auf dem ein word installiert ist.

die „saubere“ variante ist natürlich das direkte auslesen der word-files aus java heraus - ist aber vielleicht nicht immer praktikabel und vielleicht manchmal etwas overkill.

lg
erwin

Hallo Erwin,

Das hört sich eigentlich gut an. Ich muss dann schauen, wie man solchen automatisierten Makro in Word schreibt.
Wie kann man von java aus word starten, dass
es automatisch dieses makro startet: winword /mmakroname filename.doc?
Wo muss man diese Zeile reinschreiben?

GruĂź
Zaya

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

String makroname = „autosaver“;
File docfile = new File(„c:\temp\test.doc“);
String cmdline = „winword /m“ + makroname + " " docfile.getAbsolutePath();
Runtime.getRuntime().exec(cmdline) ;

so in etwa

natĂĽrlich musst du alles an deine gegebenheiten anpassen (v.a. den pfadnamen fĂĽr winword ausbessern - keine ahnung, wo das bei dir installiert ist). auch musst du ggf. noch hochkomma um die pfade herumschreiben, falls du leerzeichen im pfad hast. musst halt etwas herumexperimentieren.

lg
erwin

Hallo Erwin,

Vielen vielen Danke für deine Hilfe und Zeit! Ich werde mal schauen, wie ich es hinbekomme. (über POI könnte man direkt aus Word auslesen). Aber ich werde noch mal schreiben, ob alles geklappt hat.
Danke nochmal.

Viele GrĂĽĂźe
Zaya

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]