Die gebräuchlichsten und am weitesten verbreiteten Dateiformate für die Textverarbeitung sind DOC, DOCX und ODT. Das berühmte Microsoft Word und OpenOffice Writer unterstützen diese Formate und wir verwenden diese Formate normalerweise zum Verfassen der Dokumente. Daher müssen wir als Entwickler Word-Dokumente in unseren Anwendungen weitgehend programmgesteuert bearbeiten. In diesem Artikel werden wir diskutieren, wie Word-Dokumente in C# mithilfe der .NET-API für die Dokumentbearbeitung bearbeitet werden.

Die folgenden Themen werden in diesem Artikel kurz behandelt:

.NET-API für die Bearbeitung und Automatisierung von Word-Dokumenten

In diesem Artikel verwende ich GroupDocs.Editor für .NET in C#-Beispielen, die die Dokumentbearbeitungs-API ist und es Entwicklern ermöglicht, verschiedene Dokumentformate mit WYSIWYG-HTML-Editoren zu laden, zu bearbeiten und zu speichern. Zusätzlich zu den Textverarbeitungsdokumentformaten unterstützt die API die Bearbeitung von Tabellenkalkulationen, Präsentationen, HTML-, XML-, TXT-, DSV-, TSV- und CSV-Formaten.

Laden Sie das DLLs- oder MSI-Installationsprogramm aus dem Downloadbereich herunter oder installieren Sie die API in Ihrer .NET-Anwendung über NuGet.

PM> Install-Package GroupDocs.Editor

Bearbeiten Sie Word-Dokumente in C#

Gleich nach dem Einrichten der API können Sie schnell zur Bearbeitung des Word-Dokuments übergehen. Mit den folgenden Schritten können Sie das Textverarbeitungsdokument bearbeiten.

  • Laden Sie das Word-Dokument.
  • Bearbeiten Sie entsprechend mit Optionen.
  • Speichern Sie das bearbeitete Dokument.

Laden Sie das Word-Dokument

Laden Sie zunächst das Dokument, indem Sie den Dokumentpfad und das Kennwort angeben, wenn das Dokument geschützt ist.

using (FileStream fs = File.OpenRead(inputFilePath))
{
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
}

Bearbeiten Sie das Word-Dokument

Nach dem Laden können Sie das geladene Dokument nach Ihren Wünschen bearbeiten. Hier ersetze ich alle Vorkommen des Wortes „Dokument“ durch das „bearbeitete Dokument“ in einem Word-Dokument unter Verwendung des folgenden C#-Codes.

    using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
    {
        Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
        editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
        editOptions.EnableLanguageInformation = true;
        editOptions.EnablePagination = true;
        using (EditableDocument beforeEdit = editor.Edit(editOptions))
        {
            string originalContent = beforeEdit.GetContent();
            List<IHtmlResource> allResources = beforeEdit.AllResources;
            string editedContent = originalContent.Replace("document", "edited document");
        }
    }

Speichern Sie das bearbeitete Word-Dokument mit Optionen

Schließlich können Sie beim Speichern des bearbeiteten Dokumentinhalts verschiedene Optionen festlegen. Zu diesen Optionen gehören; Paginierung, Kennwort, Gebietsschema, Schutz oder Speicheroptimierungseinstellungen festlegen. Ich setze die obigen Optionen im unten genannten Code und speichere das bearbeitete Dokument als passwortgeschützte und schreibgeschützte DOCX-Datei.

using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
    Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
    saveOptions.EnablePagination = true;
    saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
    saveOptions.OptimizeMemoryUsage = true;
    saveOptions.Password = "password";
    saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write\_password");
    using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
    {
        editor.Save(afterEdit, outputStream, saveOptions);
    }
}

Vollständiger Code

Der Einfachheit halber zeige ich das vollständige C#-Beispiel, das oben erklärt wird, und es bearbeitet das Word-Dokument und speichert es dann im DOCX-Format.

// Bearbeiten Sie Word-Dokumente in C# mithilfe der GroupDocs-Dokumentbearbeitungs- und Automatisierungs-API
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{   // Load Document
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
    // Dokument bearbeiten
    using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
    {
        Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
        editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
        editOptions.EnableLanguageInformation = true;
        editOptions.EnablePagination = true;

        using (EditableDocument beforeEdit = editor.Edit(editOptions))
        {
            string originalContent = beforeEdit.GetContent();
            List<IHtmlResource> allResources = beforeEdit.AllResources;

            string editedContent = originalContent.Replace("document", "edited document");
            // Dokument speichern
            using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
            {
                WordProcessingFormats docxFormat = WordProcessingFormats.Docx;
                Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docxFormat);
                            
                saveOptions.EnablePagination = true;
                saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
                saveOptions.OptimizeMemoryUsage = true;
                saveOptions.Password = "password";
                saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write_password");

                using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
                {
                    editor.Save(afterEdit, outputStream, saveOptions);
                }
            }
        }
    }
}

Das Folgende ist das Ausgabedokument, in dem alle Vorkommen mit dem obigen Code ersetzt werden.

bearbeitetes docx-Dokument mit der Editor-API

Ausgabedokument - Alle Vorkommen werden ersetzt

Fazit

Abschließend haben wir die Bearbeitung von Word-Dokumenten in C# mit der Dokumentbearbeitungs-API für .NET-Anwendungen besprochen. Sie können die API mit WYSIWYG-Editoren zur visuellen Bearbeitung Ihrer Dokumente verwenden. Danach können Sie fortfahren, um Ihren eigenen Dokumenteditor zu erstellen. Ebenso können Sie die Bearbeitungsfunktion auch in Ihre .NET-Anwendung integrieren.

Weitere Details, Optionen und Beispiele finden Sie in der Dokumentation und im GitHub-Repository. Wenden Sie sich bei weiteren Fragen an den Support im Forum.

Zum Thema passende Artikel

Siehe auch