C# Word Tutorial

C# Word Verweis hinzufügen
Für die Arbeit mit Word muss die COM Referenz “Microsoft Word 9.0 Object Library” hinzugefügt werden. Diese Referenz kann im Menü Projekt » Verweis hinzufügen… auf der Registrierkarte COM ausgewählt werden. Eine neue Instanz eines Word Objekt wird mit folgender Zeile erzeugt:

1
Word.ApplicationClass myWordApp = new Word.ApplicationClass();

 

Die neue Wordinstanz ist noch etwas schüchtern und zeigt sich vorerst nicht auf dem Bildschirm. Mit der Visible Eigenschaft können wir diesen Zustand ändern.

1
2
Word.ApplicationClass myWordApp = new Word.ApplicationClass();
myWordApp.Visible = true;

Erstellen eines neuen Word Dokuments mit der Vorlage Normal.dot:

1
2
3
4
5
6
7
8
9
10
11
12
Word.ApplicationClass myWordApp = new Word.ApplicationClass();
 
object Dateiname = "normal.dot";
object neueVorlage = false;
object DokumentenTyp = 0;
object Sichtbar = true;
 
Word.Document aDoc = myWordApp.Documents.Add(ref Dateiname, ref neueVorlage,
                                             ref DokumentenTyp, ref Sichtbar);
 
myWordApp.Visible = true;
aDoc.Activate();

Mit TypeText können Texte in das Dokument eingefügt werden.

1
myWordApp.Selection.TypeText("C# Word Tutorial");

Schwieriger wird es bei komplexen Formatierungen, Absatzen, Zeilenabständen usw. Für diese Zwecke kann es sehr sinnvoll sein sich einmal den Makrorekorder von Word genauer anzuschauen. Im Word wird die Aufzeichnung im Menü Extras » Makro » Aufzeichnen… gestartet. Der Makrorekorder zeichnet nach dem Starten bis zum Beenden alles in einem VBA Script auf. Schaut man sich dieses VBA Script danach im Word Visual Basic Editor (ALT+F11) an, bekommt man einen groben Überblick über die benötigten Funktionen. Es ist zwar kein C# was direkt in das eigene Programm kopiert werden kann, aber dennoch eine gute Hilfe.

Erzeugung eines neuen Dokumentes, setzen der Textausrichtung, Schriftstärke, Schriftart und Schriftgröße:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Word.ApplicationClass myWordApp = new Word.ApplicationClass();
 
object Dateiname = "normal.dot";
object neueVorlage = false;
object DokumentenTyp = 0;
object Sichtbar = true;
 
Word.Document aDoc = myWordApp.Documents.Add(ref Dateiname, ref neueVorlage, 
                                             ref DokumentenTyp, ref Sichtbar);
 
//Text Zentrieren
myWordApp.Selection.ParagraphFormat.Alignment = 
Word.WdParagraphAlignment.wdAlignParagraphCenter;
 
 
//Fettschrift aktivieren
myWordApp.Selection.Font.Bold = (int)Word.WdConstants.wdToggle;
 
//Schriftart auf Arial
myWordApp.Selection.Font.Name = "Arial";
 
//Schriftart auf Arial
myWordApp.Selection.Font.Size  = 20;
 
myWordApp.Selection.TypeText("C# Word Tutorial");
 
myWordApp.Visible = true;
aDoc.Activate();

Wir wollen unser Word Dokument natürlich auch Speichern was mit folgenden Zeilen erledigt wird:

1
2
3
4
5
object missing = System.Reflection.Missing.Value;
object filename = @"c:\test.doc";
aDoc.SaveAs(ref filename, ref missing, ref missing, ref missing, 
            ref missing, ref missing, ref missing, ref missing, 
            ref missing, ref missing, ref missing);

Das Dokument und die Wordinstanz können wie folgt Beendet werden:

1
2
3
4
5
6
object savechanges = false;
object missing = System.Reflection.Missing.Value;
 
aDoc.Close(ref savechanges, ref missing, ref missing);
 
myWordApp.Quit(ref savechanges, ref missing, ref missing);



Tags: ,