Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
docx mit c# ansteuern
roYaL-TS
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

docx mit c# ansteuern

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
deerhunter
myCSharp.de - Member



Dabei seit:
Beiträge: 92

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von deerhunter am .
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
roYaL-TS
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
user8744
myCSharp.de - Member



Dabei seit:
Beiträge: 1201

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
roYaL-TS
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
user8744
myCSharp.de - Member



Dabei seit:
Beiträge: 1201

beantworten | zitieren | melden

Ist deine Datei denn auch wirklich ein .docx File oder im Original doch was anderes?
private Nachricht | Beiträge des Benutzers
roYaL-TS
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
xxxprod
myCSharp.de - Experte

Avatar #avatar-2329.gif


Dabei seit:
Beiträge: 1420
Herkunft: Österreich\Wien

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
roYaL-TS
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers