# Datenübergabe: Java zu MS Word-Vorlage



## ROOTer (14. Sep 2005)

Hallo Community,

ich habe ein Problem das ich leider nicht alleine Lösen kann.
Ich habe mir in Java eine kleine Applikation zum Verwaltung von
Kundendaten geschrieben und möchte dieses jetzt um einige neue
Funktionen erweitern.

*Mein Vorhaben* ist es, über diese Applikation einen Kunden und 
verschiedene Artikel auszuwählen und per Knopfdruck diese Informationen
an eine Word-Vorlage zu übergeben, welche die Daten an die richtige Stelle 
einfügt.

Ist das irgendwie möglich? Ideen oder Ansätze wären schonmal ein guten Anfang.
Ich weiss dass es schwer ist Java und Office-Applikationen
zusammenarbeiten zu lassen, aber vielleicht ist es ja doch möglich!

Für schnelle und* hilfreiche Antworten wäre ich sehr, sehr dankbar!!*

Danke.


----------



## Beni (15. Sep 2005)

Das könnte was für dich sein.


----------



## Guest (15. Sep 2005)

Oder das hier: JACOB - Java COM Bridge. Wird aber anscheinend nicht mehr
weiterentwickelt. Genau so, wie das Ding mit der Exe-Datei.


----------



## Guest (15. Sep 2005)

Kleine Korrektur: Jacob scheint doch nicht tot zu sein. Siehe Sourceforge-Link auf der Seite.
Hier noch ein Beispiel, wie Du an Word rankommst.

```
import com.jacob.com.*;
import com.jacob.activeX.*;

public class WordTest
{
  public static void main(String[] args)
  {
    ActiveXComponent word = null;
    try
    {
      ComThread.InitSTA();
      word = new ActiveXComponent("Word.Application");
      // Word unsichtbar im Hintergrund
      word.setProperty("Visible", Variant.VT_FALSE);
      // Application-Objekt holen
      Dispatch application = word.getProperty("Application").toDispatch();
      // Documents-Objekt holen
      Dispatch documents = word.getProperty("Documents").toDispatch();
      // Neues Dokument erzeugen
      Dispatch.call(documents, "Add");
      // Das neuerzeugte Dokument-Objekt holen
      Dispatch document = Dispatch.get(application,"ActiveDocument").toDispatch();
      // Inhaltsobjekt holen
      Dispatch content = Dispatch.get(document,"Content").toDispatch();
      // Text am Ende des Dokuments einfügen
      Dispatch.call(content, "InsertAfter", new Variant("Dies ist ein Test."));
      // Document im aktuellen Verzeichnis speichern
      Dispatch.call(document, "SaveAs", new Variant("\""+System.getProperty("user.dir")+"\\WordTest.doc\""));
      // Document schliessen
      Dispatch.call(document, "Close", Variant.VT_FALSE);
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
    finally
    {
      // Word beenden
      word.invoke("Quit", new Variant[0]);
      ComThread.Release();
    }
  }
}
```
Es erzeugt im Hintergrund ein neues Word-Dokument und speichert es im
Verzeichnis der Anwendung.


----------



## ROOTer (15. Sep 2005)

Hallo,

das scheint ja einfacher zu sein als ich befürchtet hatte. (finde ich echt klasse!!)

Nur brauche ich jetzt noch die Möglichkeit eine Vorlage in Word mir den entsprechenden Variablen zu füllen. Also das aus der Word-Vorlage <Absender> der von mir übergebene Absender gespeichert wird. Wenn das auch auf diesem easy-way geht, bin ich echt begeistert.

Danke schonmal vorab.


Viele Grüße

ROOTer


----------



## Guest (15. Sep 2005)

Schau Dir die VB-Hilfe an. Da solltest Du alle nötigen Informationen finden.
Alles, was Du in VB Scripts verwenden kannst, kannst Du auch von Java aus
aufrufen.


----------



## Gast (2. Apr 2007)

Das könnte auch eine Lösung sein:
http://www.teamdev.com/comfyj/index.jsf


----------

