Laden...

docx mit c# ansteuern

Erstellt von roYaL-TS vor 11 Jahren Letzter Beitrag vor 11 Jahren 4.850 Views
R
roYaL-TS Themenstarter:in
53 Beiträge seit 2012
vor 11 Jahren
docx mit c# ansteuern

Hallo,

ich weiß leider nicht mehr weiter. Ich öffne mit einem Programm eine Vorgefertige docx-Datei und fülle dort meine Textmarken, dies klappt auch soweit. Allerdings wird die Datei nicht "richtig" mit Word geöffnet, bzw nicht als docx.


 Word.Application WordApp = new Word.Application();
                    object fileName = path;
                    object readOnly = false;
                    object isVisible = true;
                    object missing = Type.Missing;
                    Word.Document myDoc = WordApp.Documents.Add(ref fileName, ref missing, ref isVisible);
                    myDoc.Activate();

                    object Schulung = "Schulung";
                    object Datum = "Datum";

                    myDoc.Bookmarks.get_Item(ref Schulung).Range.Text = Schulungsname;
                    myDoc.Bookmarks.get_Item(ref Datum).Range.Text = Date;


                    if (TraineranzahlCB.Text == "2")
                    {
                        object Trainer1 = "Trainer1";
                        object Trainer2 = "Trainer2";
                        myDoc.Bookmarks.get_Item(ref Trainer1).Range.Text = trainer1_TB.Text;
                        myDoc.Bookmarks.get_Item(ref Trainer2).Range.Text = trainer2_TB.Text;
                    }
                    if (TraineranzahlCB.Text == "3")
                    {
                        object Trainer1 = "Trainer1";
                        object Trainer2 = "Trainer2";
                        object Trainer3 = "Trainer3";
                        myDoc.Bookmarks.get_Item(ref Trainer1).Range.Text = trainer1_TB.Text;
                        myDoc.Bookmarks.get_Item(ref Trainer2).Range.Text = trainer2_TB.Text;
                        myDoc.Bookmarks.get_Item(ref Trainer3).Range.Text = trainer3_TB.Text;
                    }
                    WordApp.Visible = true;

Kann mir einer vielleicht meinen Fehler aufzeigen? die msdn ist mir auch nicht wirklich eine Hilfe

Gruß,
roYaL-TS

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
 John Woods

D
91 Beiträge seit 2005
vor 11 Jahren

Hallo roYaL-TS!

Ich kann dir bei deinem Problem leider nicht direkt weiterhelfen, möchte jedoch die Gelegenheit nutzen, dich auf OpenXML aufmerksam zu machen. Ich habe vor einiger Zeit damit erfolgreich Word-Dokumente im docx Format erstellt.

VG, Florian

1.820 Beiträge seit 2005
vor 11 Jahren

Hallo roYaL-TS,

als Ergänzung zum Beitrag von deerhunter sein noch erwähnt, dass jemand aus diesem Forum ein komplettes Framework zur Erstellung von OpenXML-Dateien geschrieben hat: NetOffice - Ein versionsunabhängiger Wrapper für MS-Office

Nobody is perfect. I'm sad, i'm not nobody 🙁

R
roYaL-TS Themenstarter:in
53 Beiträge seit 2012
vor 11 Jahren

Danke für die Antworten, leider muss ich gestehen das ich noch nie mit sowas gearbeitet habe, daher könnte das vermutlich das alles nochmal verkomplizieren. Dennoch werd ich mal einen Blick drauf werfen

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
 John Woods

Gelöschter Account
vor 11 Jahren

Ich versteh nicht was du meinst wenn du sagst die Datei wird nicht als .docx geöffnet. Als was wird sie denn geöffnet? Du kannst bei .docx auch auf die Automation von Word verzichten und das Dokument direkt bearbeiten. Simple OOXML kann da für dich interessant sein.

R
roYaL-TS Themenstarter:in
53 Beiträge seit 2012
vor 11 Jahren

Nachdem ich mir mit

WordApp.Visible = true;

das Dokument anzeigen lasse wird dies nicht als Word-Dokument dargestellt. So wird, wenn ich auf "Speichern unter" klicke, der Dateityp als "Webseite in einer Datei" angezeigt. Ich hätte dies allerdings gern als docx. Es werden dort außerdem einige Elemente verschoben

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
 John Woods

Gelöschter Account
vor 11 Jahren

Ist deine Datei denn auch wirklich ein .docx File oder im Original doch was anderes?

R
roYaL-TS Themenstarter:in
53 Beiträge seit 2012
vor 11 Jahren

Die ist ein docx-file, ich habe dort 5 Textmarken gesetzt die ich dann durch den Programmaufruf mit den entsprechenden Werten füllen möchte, es wird zwar auch das Officeinterface geöffnet, aber die Datei selbst ist eben dann geöffnet keine docx mehr

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
 John Woods

1.378 Beiträge seit 2006
vor 11 Jahren

Hast dus schon mal mit Documents.Open alternativ probiert?

Wird ein leeres, neu erstelltes docx korrekt geöffnet?

Es gibt bei Documents.Add mehrere optionale Parameter. Unter anderen documentType oder so - vielleicht kann man da was drehen?

Lg, XXX

R
roYaL-TS Themenstarter:in
53 Beiträge seit 2012
vor 11 Jahren

Mit einem leeren Testdokument geschieht genau das gleich, es wird als Webseite in einer Datei geöffnet.

Allerdings war der Hinweis mit dem documentType sehr hilfreich.

Das Probleme habe ich nun durch

                    object DocumentType = Word.WdSaveFormat.wdFormatDocument;    

behoben, danke dafür. Nun wird es anständig geöffnet und eingefügt 😃

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
 John Woods