Speichern einer OpenXML-Dokument (Word) erzeugt aus einer Vorlage
Ich habe ein bisschen code, öffnen Sie ein Word 2007 (docx) Dokument und aktualisieren Sie die entsprechende CustomXmlPart (und damit die Aktualisierung der Inhalte-Steuerelemente im Dokument selbst, wie Sie abgebildet werden, um die CustomXmlPart -) aber nicht arbeiten können, so speichern Sie diese als neue Datei.! Kann es doch nicht so schwer sein!
Meine aktuellen denken ist, dass ich brauche, um die Vorlage zu öffnen und kopieren Sie den Inhalt in ein neues, leeres Dokument - Datei, indem Sie Datei, aktualisieren Sie die CustomXmlPart, wenn ich ihm begegnen.
Nennen Sie mich altmodisch, aber das klingt ein wenig umständlich zu mir!
Warum kann ich nicht einfach eine WordprocessingDocument.SaveAs(filename); ...?
Bitte sagen Sie mir, ich bin etwas fehlt einfach hier.
Vielen Dank im Voraus
- Ich dachte, dass OpenXml wurde soll machen Dinge, die eaiser - pfft.! Verlassen Sie die oben beiseite für die timebeing ich hatte einen Blick auf die nächste Aufgabe auf der Liste - die Einbettung einer Handvoll von docx-Dateien in einem einzigen docx (nicht Fragen!) und ich bin nur geben mir Kopfschmerzen hier!
- einfacher .. als hand-crafting-die xml-basierte auf dem spec 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beziehen Sie sich auf den OpenXml-SDK? Leider, wie des OpenXml SDK 2.0 gibt es keine SaveAs-Methode. Sie müssen:
myWordDocument.MainDocumentPart.Document.Save()
Methode für die Haupt-Inhalt odersomeHeaderPart.Header.Save()
Methode für einen bestimmten header).MemoryStream
dann speichern Sie es an einem gewünschten Dateinamen in das Ende, wenn das das Ziel. Diese links könnten helfen: Arbeiten mit der In-Memory-Open-XML-Dokumente und Probleme mit OpenXML und MemoryStreams?In der Tat können Sie, zumindest in OpenXml SDK 2.5. Aber watchout arbeiten mit einer Kopie der original-Datei, da änderungen in der XML tatsächlich spiegelt sich in der Datei. Hier haben Sie die Methoden Load und Save von meinem custom-Klasse (nach dem entfernen einige Validierungs-code,...):
Dass "_document" als WordprocessingDocument Instanz.
In Open XML SDK 2.5 Schließen speichert die änderungen, wenn AutoSave true ist.
Siehe meine Antwort hier:
https://stackoverflow.com/a/36335092/3285954
Können Sie ein MemoryStream, die änderungen zu schreiben, anstatt in der ursprünglichen Datei. Daher können Sie speichern, dass MemoryStream in eine neue Datei: