Word Dokumente mit Datenfüllen aus .NET

Ich weiß das es wie so oft, viele Wege gibt, aber leider konnte ich derzeit nur einen richtig verstehen und deswegen anwenden.

Mein Ziel war es, ein Word-Dokument/Vorlage mit Daten aus der Datenbank zufüllen.

Durch das suchen nach “Platzhaltern” für Word und dann das er setzen der Felder mit richtigen Daten, bin ich dann auf “MergeFields” gestoßen. Diese werden in Word über “Menü—>Einfügen—>Felder” eingefügt und mit einem Namen versehen.

im .NET ist es dann relativ einfach die Felder zu ersetzen.

Object _Doc = @"H:\MeineVorlage.doc";

Word.ApplicationClass _WordApp = new Word.ApplicationClass();

object _False = false;
object _True = true;
object _NULL = null;
object _Missing = Type.Missing;

Word.Document Doc = _WordApp.Documents.Open(ref _SpecEN, ref
_Missing, ref _Missing, ref _Missing, ref _Missing, ref _Missing,
ref _Missing, ref _Missing, ref _Missing, ref _Missing, ref
_Missing, ref _Missing, ref _Missing, ref _Missing, ref _Missing,
ref _Missing);

var felder = Doc.Fields.GetEnumerator();

while (felder.MoveNext())
{
Word.Field current = (Word.Field)felder.Current;
String feldname = current.Code.Text;
feldname = feldname.Substring(13, feldname.Length - 30);
//ist jetzt nur noch der Name, welcher in Word eingeben wurde für das MergeField

//damit man den text verändern kann
current.Select();

//Prüfen ob das Feld "Land" entspricht, wenn ja,
//dann Text verändern und durch das verändern des textes, wird auch das Feld gelöscht/ersetzt
if (feldname.Equals("Land"))
{
_WordApp.Selection.TypeText("Deutschland");
}

_WordApp.Visible = true;
Doc.Activate();
}

Links:

C-Sharpcorner – WordAutomation

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


+ 9 = 17

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>