Speichern Sie das geänderte WordprocessingDocument in der neuen Datei
Ich versuche ein Word-Dokument öffnen, ändern Sie den text und speichern Sie dann die änderungen in einem neuen Dokument. Ich kann das erste bit gemacht mit dem code unten, aber ich kann nicht herausfinden, wie um die änderungen zu speichern, um ein NEUES Dokument (mit Angabe der Pfad und Dateiname).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using DocumentFormat.OpenXml.Packaging;
using System.IO;
namespace WordTest
{
class Program
{
static void Main(string[] args)
{
string template = @"c:\data\hello.docx";
string documentText;
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(template, true))
{
using (StreamReader reader = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
documentText = reader.ReadToEnd();
}
documentText = documentText.Replace("##Name##", "Paul");
documentText = documentText.Replace("##Make##", "Samsung");
using (StreamWriter writer = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
writer.Write(documentText);
}
}
}
}
}
Ich bin ein totaler Anfänger auf diesem, so verzeihen Sie die Frage!
InformationsquelleAutor der Frage Paul | 2012-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine
MemoryStream
können Sie speichern die änderungen in einer neuen Datei wie folgt:InformationsquelleAutor der Antwort amurra
In Open XML SDK 2.5:
wordprocessingDocument.AutoSave
standardmäßig true ist so Nah und zu Entsorgen, werden Sie auf änderungen speichern.wordprocessingDocument.Close
ist nicht erforderlich, explizit wegen der using-block nennen.Dieser Ansatz erfordert nicht die gesamte Inhalt der Datei in den Arbeitsspeicher geladen werden wie in der akzeptierten Antwort. Es ist nicht ein problem für kleine Dateien, aber in meinem Fall habe ich mehr von docx-Dateien mit eingebetteten xlsx-und pdf-Inhalt in der gleichen Zeit, so dass die Speicherauslastung wäre Recht hoch.
InformationsquelleAutor der Antwort user3285954
Kopieren Sie einfach die Quelldatei auf die destination und die änderungen von dort.
Hoffe, das funktioniert.
InformationsquelleAutor der Antwort Mohamed Alikhan
Die primäre Ressource für Open XML ist die openxmldeveloper.org. Es hat mehrere Vorträge und Beispiel-Projekte zu Bearbeiten Dokumente:
http://openxmldeveloper.org/resources/workshop/m/presentations/default.aspx
Siehe auch die folgende Frage:
Das Lesen eines Word 2007-Tabelle mit C#
InformationsquelleAutor der Antwort Sabuncu
Für mich diese geklappt:
InformationsquelleAutor der Antwort ren