De meest voorkomende en meest gebruikte bestandsindelingen voor tekstverwerking zijn DOC, DOCX en ODT. De beroemde Microsoft Word en OpenOffice Writer ondersteunen deze formaten en normaal gesproken gebruiken we deze formaten voor het opstellen van de documenten. Daarom moeten we als ontwikkelaar op grote schaal Word-documenten in onze applicaties programmatisch bewerken. In dit artikel bespreken we hoe u Word-documenten in C# kunt bewerken met behulp van de .NET API voor het bewerken van documenten.

In dit artikel worden de volgende onderwerpen kort besproken:

.NET API voor het bewerken en automatiseren van Word-documenten

In dit artikel zal ik GroupDocs.Editor for .NET gebruiken in C#-voorbeelden, de documentbewerkings-API waarmee ontwikkelaars verschillende documentindelingen kunnen laden, bewerken en opslaan met behulp van WYSIWYG HTML-editors. Naast de documentindelingen voor tekstverwerking ondersteunt de API het bewerken van spreadsheets, presentaties, HTML-, XML-, TXT-, DSV-, TSV- en CSV-indelingen.

Download de DLL’s of het MSI-installatieprogramma van de downloadsectie of installeer de API in uw .NET-toepassing via NuGet.

PM> Install-Package GroupDocs.Editor

Bewerk Word-documenten in C#

Net na het instellen van de API, kunt u snel overgaan tot het bewerken van het Word-document. Met de volgende stappen kunt u het tekstverwerkingsdocument bewerken.

  • Laad het Word-document.
  • Bewerk dienovereenkomstig met opties.
  • Sla het bewerkte document op.

Laad het Word-document

Laad eerst het document door het documentpad en het wachtwoord op te geven, als het document beveiligd is.

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

Bewerk het Word-document

Na het laden kunt u het geladen document naar wens bewerken. Hier vervang ik alle keren dat het woord “document” voorkomt door het “bewerkte document” in een Word-document met behulp van de onderstaande C#-code.

    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");
        }
    }

Sla het bewerkte Word-document op met Opties

Ten slotte kunt u tijdens het opslaan van de bewerkte documentinhoud verschillende opties instellen. Deze opties omvatten; instellingen voor paginering, wachtwoord instellen, locale, beveiliging of geheugenoptimalisatie. Ik stel de bovenstaande opties in de onderstaande code in en sla het bewerkte document op als een met een wachtwoord beveiligd en alleen-lezen DOCX-bestand.

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);
    }
}

Volledige code

Voor uw gemak laat ik het volledige C#-voorbeeld zien dat hierboven is uitgelegd en het bewerkt het Word-document en slaat het vervolgens op in DOCX-indeling.

// Bewerk Word-document in C# met behulp van GroupDocs-API voor documentbewerking en automatisering
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{   // Load Document
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
    // Document bewerken
    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");
            // document opslaan
            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);
                }
            }
        }
    }
}

Het volgende is het uitvoerdocument waarin alle voorkomens zijn vervangen met behulp van de bovenstaande code.

bewerkt docx-document met behulp van editor-API

Uitvoerdocument - Alle exemplaren worden vervangen

Conclusie

Tot slot bespraken we het bewerken van Word-documenten in C# met behulp van de documentbewerkings-API voor .NET-toepassingen. U kunt de API met WYSIWYG-editors gebruiken voor de visuele bewerking van uw documenten. Daarna kunt u verder gaan om uw eigen documenteditor te bouwen. Op dezelfde manier kunt u de bewerkingsfunctie ook integreren in uw .NET-toepassing.

Voor meer details, opties en voorbeelden kun je de documentation en de GitHub repository bezoeken. Neem voor verdere vragen contact op met de ondersteuning op het forum.

gerelateerde artikelen

Zie ook