C#+ Office paar Fragen

DrMueller

Erfahrenes Mitglied
Hallo leute,

evtl. könnt ihr mir direkt helfen, da ich ja noch nicht wirklich knusprig in C# bin:
Ich befülle ziemlich simpel ein paar Textmarken it ein paar vordefinierten Texten:

Code:
        public void CreateDoc(Document document)
        {
            Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document oWordDoc = new Microsoft.Office.Interop.Word.Document();
            //oWord.Visible = true;

            Object oMissing = Missing.Value;
            Object oTemplatePath = TEMPLATE_PATH;

            // erstellt ein neues Dokument von der Vorlage
            oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);

            oWordDoc.Bookmarks[TEXTMARKE_ADRESSE].Range.Text = document.Address;
            oWordDoc.Bookmarks[TEXTMARKE_BETREFF].Range.Text = document.Betreff;
            oWordDoc.Bookmarks[TEXTMARKE_KUNDE].Range.Text = document.Kunde;

            string text;

            if (document.Unterlagsboden)
                text = "-  BKP Unterlagsboden";
            else
                text = "";
            oWordDoc.Bookmarks[TEXTMARKE_UNTERLAGSBODEN].Range.Text = text;

            if (document.PlattenBeläge)
                text = "-  BKP ker. Plattenbeläge";
            else
                text = "";
            oWordDoc.Bookmarks[TEXTMARKE_PLATTENBELÄGE].Range.Text = text;

            if (document.HartBeton)
                text = "-  BKP Hartbeton";
            else
                text = "";
            oWordDoc.Bookmarks[TEXTMARKE_HARTBETON].Range.Text  = text;

            string savePath = getSavepath(document.Address);
            Object SaveName = savePath;

            oWordDoc.SaveAs(SaveName);
            oWordDoc.Close();
            oWord.Quit();
            
        }


Hierzu habe ich gleich ein paar Probleme:
  • obwohl ich wordDoc.Close und Word.Quit mache, bleibt der Prozess bestehen. Laut meiner Suche sollte dies allerdings reichen. Kann dies ein anderer Grund haben?
  • Wenn ich den Code das erste mal aufrufe, startet automatisch dieses Microsoft Works-Start. Dies allerdings nur, wenn ich per Code starte, wenn ich Word normal aufmache erscheint dies nicht. Hierzu habe ich gar nichts gefunden interessanterweise.
  • Wie zu sehen setze ich den Text ziemlich hässlichh mit einem - und zwei Leerzeichen. Ich habe zwar einigen Beispielcode gefunden, der Auflistungen macht, aber diese scheinen meist mit ganz anderen Objekte zu arbeiten. Kann ich irgendwie direkt aus den Bookmarks raus dies bewerkstelligen?


Wie immer danke ich vielmals im Voraus und wünsche schon ein schönes Wochenende.

Müller Matthias
 
obwohl ich wordDoc.Close und Word.Quit mache, bleibt der Prozess bestehen.
Vielleicht war vorher bereits eine Word-Instanz gestartet, bevor dein Programm startete. Du solltest anstatt
C#:
Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
besser überprüfen, ob bereits eine Word-Instanz läuft und auf diese zugreifen, anstatt eine neue erstellen.
 
Zurück