Zum Inhalt springen

Word Formatvorlagen - Daten mittels C# Programm importieren


Empfohlene Beiträge

Geschrieben

Hallo zusammen,

habe die Aufgabe bekommen ein C# Programm zu programmieren mit einer XML-Datei als Datenquelle. Im Programm werden Sachen in der XML-Datei geändert. Nun soll das Programm die Funktion haben, dass wenn ich auf einen Button drücke sollen die Daten aus der XML Datei in eine Word Formatvorlage .dot importiert werden. Hab aber leider gar keine Ahnung wie das funktionieren soll. Wäre echt über jeden Ansatz dankbar! Kann man es hin bekommen, dass ein ausgewählter Text in einer Tabelle in der Vorlage nach dem Import steht oder habe ich keinen Einfluss auf den "Ort" wo der Text in der Vorlage steht?

Hoffe ich habe mich einigermaßen verständlich ausgedrückt.

Nochmals: habe eine Word Formatvorlage und muss dort jetzt Text einbinden per C# Code. Geht das?

Gruss

Geschrieben

Hallo

Ich hab das in dem Tutorial mal auprobiert bei mir wird da ne exception gedroppt.

Hier mein Code:

(Die grüne stelle ist der Ort, wo die exception auftritt)


            Microsoft.Office.Interop.Word.ApplicationClass myWordApp = new ApplicationClass();


            object Dateiname = "normal.dotx";

            object neueVorlage = false;

            object DokumentenTyp = 0;

            object Sichtbar = true;

[COLOR="Green"]Microsoft.Office.Interop.Word.Document doc = myWordApp.Documents.Add(

                                                ref Dateiname,

                                                ref neueVorlage,

                                                ref DokumentenTyp,

                                                ref Sichtbar);[/COLOR]

            myWordApp.Visible = true;

            doc.Activate();

Und hier die Exception:

Dieses Dokument konnte von Word nicht gelesen werden. Es ist möglicherweise beschädigt.

Versuchen Sie Folgendes:

* Öffnen und reparieren Sie die Datei.

* Öffnen Sie die Datei mit dem Wiederherstellen-Textkonverter.

Woran kann das liegen???

Ich hab die Referenz auf die "Microsoft Word 12.0 Object Library" hinzugefügt.

Kann das daran liegen, dass ich Office 07 drauf hab??? Heißt da des "normal.dot" evtl i-wie anders???

Geschrieben

Ich habe das Tutorial ebenfalls mal nachgebaut und es funktioniert nicht :-)

Aber mit einer kleinen Änderung bekommt man es doch zum Fliegen.

Anstatt:


object Dateiname = "normal.dotx";

Gib einfach den Pfad zur Vorlage mit an:

object Dateiname = @"c:\Vorlage.dotx";

Bei mir hat es so funktioniert.

Gruß,

Thomas

  • 3 Monate später...
Geschrieben

Hallo,

ich hab es auch getestet, funktioniert wunderbar bei mir.

Jetzt hab ich aber ein anderes Problem, ich würde Word gerne RTF-formatierten Text übergeben. Quasi wo im Tutorial

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

steht soll

myWordApp.Selection.TypeText(this.richTextBox.Rtf);

stehen.

Leider zeigt mir Word dann Sachen wie

{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{

an. Er setzt die Formatierung quasi nicht um.

Hat da jemand eine Idee? Ich würde gerne RTF Text an Word schicken, da ich auch Tabellen und Grafiken habe.

Gruss

Geschrieben

Hallo,

danke für den Tip,

leider weiss ich nicht wie ich das benutzen kann.

myWordApp.Selection.ShapeRange.RTF

ist ja eine Eigenschaft und keine Funktion wie

myWordApp.Selection.TypeText("Hallo");

Könntest du mir vielleicht genauer erklären,

wie ich das nutzen kann?

Wär echt klasse.

Danke und Gruss

Geschrieben

Ich glaub das war eh ein Schuss in den Ofen.

Probier Folgendes:


/*Exemplarische rtb*/

RichTextBox myRTB = new RichTextBox();

myRTB.SelectAll();

myRTB.Copy();


//...


myWordApp.Selection.Paste();

  • 5 Monate später...
Geschrieben

Hallo nochmal,

habe eine weitere Frage zum Erstellen eines Word-Dokuments mit Hilfe von C#.

Wie kann ich dem Dokument Dateiinfos mitgeben, sprich Titel, Autor, Betreff, Stichwörter, Kommentare? Halt die Meta-Daten die man sieht, wenn man mit der rechten Maustaste auf die Word-Datei klickt und Eigenschaften anwählt.

Momentan sieht mein Code so aus:


this.richTextBoxPrintCtrl1.SelectAll();

this.richTextBoxPrintCtrl1.Copy();


Microsoft.Office.Interop.Word.ApplicationClass myWordApp = new Microsoft.Office.Interop.Word.ApplicationClass();

object Dateiname = SLV_Doku.Config.pathWordVorlage;


            if (this.tbFormatvorlage.Text.EndsWith(".dot"))

            {

                Dateiname = this.tbFormatvorlage.Text;

            }


            object neueVorlage = false;

            object DokumentenTyp = 0;

            object Sichtbar = true;


            Microsoft.Office.Interop.Word.Document aDoc = myWordApp.Documents.Add(ref Dateiname, ref neueVorlage, ref DokumentenTyp, ref Sichtbar);



myWordApp.Selection.Paste();

myWordApp.Visible = true;

aDoc.Activate();

Leider fehlen mir hier wie gesagt die "internen Infos".

Wäre Klasse, wenn jemand ne Lösung kennen würde :)

Gruss

Thomas

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...