Hello World mit OpenXML SDK

So und jetzt schauen wir uns mal an, wie man mit Hilfe des OpenXML SDK`s ein „Hello World“-Dokument erstellt. Wie Sie gleich sehen werden, brauchen wir Word dabei nur noch zum Anzeigen des fertigen Dokuments. Es geht los:

Schritt 1: Starten Sie wieder Visual Studio

Schritt 2: Legen Sie ein neues C# – Projekt vom Typ Konsolenanwendung an. Diesmal geben wir dem Projekt den Namen „HelloWorldOpenXML“.

Beispiel_2_Bild1

Schritt 3: Dann fügen Sie Verweise auf „WindowsBase“ und „DokumentFormat.OpenXML“ hinzu.

Beispiel_2_Bild2

Beispiel_2_Bild3

(„DocumentFormat.OpenXML“ ist nicht in der Liste, wenn vorher nicht das Open XML SDK 2.5 installiert wurde!)

Schritt 4: Klicken Sie im Projektmappen-Explorer auf  „Program.cs“ und tippen Sie im Editor den in der folgenden Abbildung dargestellten Quelltext ein. Die Zeile „In Word 2010 – Dokument umwandeln“ lassen Sie erst mal weg. Auf diese Zeile kommen wir später noch zu sprechen.

Beispiel_2_Bild4

5. Speichern Sie das Projekt und starten Sie die Anwendung z.B. mit F5. Wenn Sie alles richtig gemacht haben, sollte automatisch zunächst ein Word-Dokument, das als einzigen Text „Hello World“ enthält, erstellt und anschließend in Word geöffnet werden.

Beispiel_2_Bild5

Das Ergebnis ist (fast) das Gleiche wie in Beispiel 1. Wenn wir uns aber den Quellcode genauer anschauen, stellen wir fest, dass es gravierende Unterschiede gibt.

Fangen wir mal hinten an: Die Anweisung „Process.Start(fileName);“ dient lediglich dazu das fertige Word-Dokument anzuzeigen. In meinem Fall wird dazu Word 2010 verwendet. Auf anderen Rechnern könnte das mit Word 2007, mit OpenOffice oder sogar mit dem frei verfügbaren OpenXML Viewer (einem PlugIn für Firefox) geschehen. Je nachdem welche Anwendung auf dem Rechner installiert ist. Die „Process.Start“-Methode startet automatisch die mit dem Dateityp „.docx“ verknüpfte Anwendung.

Alle Anweisungen davor dienen dazu das Word Dokument zu erstellen. Der Unterschied zu Beispiel 1 ist, dass dazu keine Word Instanz benötigt wird. Das Ganze geschieht also komplett ohne Automation. Mit Hilfe des Open XML SDK`s wird hier direkt die Datei „HelloWorld.docx“ im Dateisystem erstellt. Das geschieht mit der Anweisung „WordProcessingDocument.Create(fileName,WordProcessingDocumentType.Document)“. Damit haben wir im Prinzip nichts anderes gemacht als einen Zip-Container (ein Package) ohne Inhalt angelegt. Mit der Anweisung „MainDocumentPart mainDocumentPart = wordDocument.addMainDocumentPart();“ wird diesem Package die Datei „Document.xml“ hinzugefügt. Mit den darauffolgenden Zeilen werden in dieser Datei einige XML-Tags (nämlich ein Body, ein Paragraph, ein Run sowie ein Text mit einem Text-Attribut) hinzugefügt. All das zusammen ergibt ein valides (das heißt einer bestimmten Syntax entsprechendes) Word-Dokument, das z.B. in Word 2010 geöffnet werden kann.

Damit man den Quellcode noch besser verstehen kann, werden wir uns im folgenden Post die generierte Datei „HelloWorld.docx“ nochmal im Detail ansehen.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s