Veröffentlicht 21. Dezember 200915 j 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
21. Dezember 200915 j Hallo, das mit Word ist kein großes Ding. Hier mal ein link für ein kleines Tutorial, was ich zum reinen Einstieg ganz passend finde: Tutorial Hier wird auch wie bei deiner Problemstellung ein Vorlage genutzt. Gruß, Thomas
22. Dezember 200915 j 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???
22. Dezember 200915 j Welche assembly Version des Word Interops hast du denn gesetzt? Eigentlich ist der Fehler ja recht aussagekräftig. Das Doc File, auf das du refenzierst ist beschädigt.
22. Dezember 200915 j Die Version is 8.4 Aber ich hab des etz schon an 2 rechnern versucht und an beiden gehts ned... schon ein bischen komisch...
22. Dezember 200915 j Meines Wissen must du bei Office 07 auf die Interop Assembly Version 12 verweisen.
22. Dezember 200915 j 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
29. März 201015 j Autor 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
30. März 201015 j Autor 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
30. März 201015 j 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();
31. März 201015 j Autor Hi, so was hab ich mir auch schon überlegt. Danke für den Tip, hab's grade ausprobiert und es funktioniert gut! Ich glaube so kann ich es lassen Danke !!! Gruß Mr. Tommes
16. September 201015 j Autor 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.