Ich habe ein wenig Code, der ein Word 2007 (docx) -Dokument öffnet und das entsprechende CustomXmlPart aktualisiert (wodurch die Inhaltssteuerelemente im Dokument selbst aktualisiert werden, da sie dem CustomXmlPart zugeordnet sind), kann aber nicht herausfinden, wie das geht Speichere das als neue Datei. Sicherlich kann es nicht so schwer sein!
Nach meinem derzeitigen Verständnis muss ich die Vorlage öffnen und den Inhalt in ein neues, leeres Dokument kopieren - Datei für Datei, wobei ich CustomXmlPart aktualisieren muss, wenn ich darauf stoße. Nenn mich altmodisch, aber das klingt ein wenig klobig für mich!
Warum kann ich nicht einfach WordprocessingDocument.SaveAs (Dateiname); ...?
Bitte sagen Sie mir, ich vermisse hier etwas Einfaches.
Vielen Dank im Voraus
Beziehen Sie sich auf das OpenXml SDK? Leider gibt es seit OpenXml SDK 2.0 keine SaveAs-Methode. Sie müssen:
myWordDocument.MainDocumentPart.Document.Save()
für den Hauptinhalt oder someHeaderPart.Header.Save()
für einen bestimmten Header). Tatsächlich können Sie zumindest in OpenXml SDK 2.5. Achten Sie jedoch darauf, dass Sie mit einer Kopie der Originaldatei arbeiten, da sich Änderungen in der XML-Datei in der Datei widerspiegeln. Hier haben Sie die Methoden Laden und Speichern meiner benutzerdefinierten Klasse (nach dem Entfernen eines Validierungscodes, ...):
%Vor%"_document" als eine WordprocessingDocument -Instanz.
In Open XML SDK 2.5 Schließen speichert Änderungen, wenn AutoSave wahr ist. Siehe meine Antwort hier: Ссылка