Per Java Word Dokument schreiben?

berndoa

Top Contributor
Hallo,
ich habe folgende Situation:
Ich habe eine Exceltabelle, die im Kern in jeder Zeile erst ein Datum und dann eine Adresse ("Hans Müller, Müllersstr. 7, 54891 Dummsdorf") stehen hat.

Und schreibe regelmässig Word Dokumente, in denen ich sprichwörtlich nur den Empfänger und das Datum austausche.Hierzu nehme ich die Daten aus erwähnter Liste.
Als Namen erhält die Word Datei auch einfach nur das benutzte Datum. Wobei der Empfänger natürlich auf 3 Zeilen aufgeteilt wird, als oben Alles in eine Zeile.

Das Ganze ist so ... monoton, das lässt sich doch bestimmt irgendwier automatisieren, oder?

Dass ich ein java programm habe, dem ich bspw. vorgebe dass es 5 word Dateien schreiben soll, es sich die ersten 5 Zeilen aus der excel Datei raussucht und damit nahc dem "Template" eben 5 word Dateien mit entsprechendem Namen erstellt.

Wie kann ich da vorgehen?

Bzgl. Excel Tabelle (bzw. korrekter Openoffice Calc; für die Textdateien benutze ich ebenso Openoffice Writer) habe ich aus vergangenen Projekten bereits eine Bibliothek, mit der ich bestimmte Zellen in der Exceltabelle auslesen kann.
Also die Daten aus der Exceltabelle kriegen kriege ich vermutlich auf Anhieb hin.

Nur bzgl. des BilligWord-Dokuments habe ich noch keinen Plan.
Ich habe zwar gegoogelt in der Hinsicht und da stand was von eienr angeblichen openoffice java API, aber habe da nichts mir Sagendes gefunden, geschweigedenn kapiere ich was man da braucht und wie man es nutzt.

Kann mir da Jemand ggbfls. weiterhelfen?

Ich weiß auch nicht wirklich wie man in nem Word Dokument so agiert, weil das ja im gegensatz zu ner Exceltabelle voll mit Formatierungen und Co ist.
Wie man sowas dann ausliest und abändert, keine Ahnung :-/

Wäre da für jeden guten Ratschlag dankbar 🙂
 
Ich würde das eher mit VBA lösen.

Ich habe damit mal eine Kalkulationstabelle für einen Arbeitskollegen gemacht, wo er Angebote direkt in Excel kalkulieren, dann in einer Eingabemaske noch ein paar Details wie Kundenanschrift und Vertragsoptionen eintragen konnte, und fiel hinten der Vertrag fertig als Worddokument hinten raus.

PS: Ich habe gerade mal geschaut, aber ich finde leider keinen Codeschnipsel mehr. Du mußt jedoch wissen, daß der Text eines Worddokuments für Word eine einzige lange Zeile ist. Zeilenumbrüche macht Word dann wenn es dies für geboten hält, oder der Benutzer nach einem Zeilenumbruch verlangt.
Ich weiß nicht mehr genau wie das hieß, jedenfalls setzt du irgendwo in dieser lange Zeile zwei Marker, Adressen, Lesezeichen oder so, und zwischen diesen beiden Lesezeichen kannst du dann den Text z.B. fett formatieren.

Leider ist der Makrorekorder von Word zu nichts zu gebrauchen, zumindest war der damals komplett untauglich. Vielleicht ist das heute aber besser. Jedenfalls habe ich mir den Kram damals irgendwo zusammengegoogelt, das müßte heute auch noch zu schaffen sein.
 
Zuletzt bearbeitet:
Es gibt schon diverse Java APIs, die das erlauben wie z.B. Apache POI.
Ich weiß allerdings nicht, ob die mittlerweile auch die neuesten Formate können, da hatte Microsoft lange Zeit den Finger drauf (wobei eine docx ja auch nicht viel mehr ist als eine gezippte doc mit ein paar Zusatzinformationen).

Wenn du den Java-Weg gehen willst, ist Open-/Libreoffice mit ods vielleicht die bessere Lösung.

In die APIs musst du dich aber so oder so einlesen.

edit: eine eigene docx API gibt's anscheinend auch.
 
MS Word kann doch Serienbriefe mit Daten aus Exceltabellen. Dafür ist kein Java-Programm nötig.
Habe gerade mal das mit derSerienbriefsache durchgetestet, gut, verschiedene Briefe mit den Adressen aus der Tabelle lassen sich bauen.
Aber 1. kann ich das Datum in dem brief nicht aus der Excel Tabelle entnehmen.
Und 2. kann ich auch den Dateinamen nicht beeinflussen, die werden einfach durchnummeriert :-/
 
Es gibt schon diverse Java APIs, die das erlauben wie z.B. Apache POI.
Ich weiß allerdings nicht, ob die mittlerweile auch die neuesten Formate können, da hatte Microsoft lange Zeit den Finger drauf (wobei eine docx ja auch nicht viel mehr ist als eine gezippte doc mit ein paar Zusatzinformationen).

Wenn du den Java-Weg gehen willst, ist Open-/Libreoffice mit ods vielleicht die bessere Lösung.

In die APIs musst du dich aber so oder so einlesen.

edit: eine eigene docx API gibt's anscheinend auch.
Wie gesagt Openoffice Calc und Writer benutze ich ja schon
 

Zurück
Oben