Nejběžnější a nejrozšířenější formáty souborů pro zpracování textu jsou DOC, DOCX a ODT. Slavný Microsoft Word a OpenOffice Writer tyto formáty podporují a běžně tyto formáty používáme pro vytváření dokumentů. Proto jako vývojáři široce potřebujeme programově upravovat dokumenty Wordu v našich aplikacích. V tomto článku probereme, jak upravovat dokumenty aplikace Word v jazyce C# pomocí rozhraní .NET API pro úpravy dokumentů.
Následují témata stručně probíraná v tomto článku:
.NET API pro úpravy a automatizaci dokumentů aplikace Word
V tomto článku budu v příkladech C# používat GroupDocs.Editor for .NET, což je API pro úpravu dokumentů a umožňuje vývojářům načítat, upravovat a ukládat různé formáty dokumentů pomocí WYSIWYG HTML editorů. Kromě formátů dokumentů pro zpracování textu rozhraní API podporuje úpravy tabulek, prezentací, formátů HTML, XML, TXT, DSV, TSV a CSV.
Stáhněte si DLL nebo instalační program MSI z části ke stažení nebo nainstalujte API do své aplikace .NET prostřednictvím NuGet.
PM> Install-Package GroupDocs.Editor
Upravujte dokumenty Word v C#
Po nastavení rozhraní API můžete rychle přejít k úpravám dokumentu aplikace Word. Následující kroky vám umožní upravit dokument textového editoru.
- Načtěte dokument aplikace Word.
- Upravte podle možností.
- Uložte upravený dokument.
Načtěte dokument aplikace Word
Nejprve načtěte dokument zadáním cesty k dokumentu a hesla, pokud je dokument chráněn.
using (FileStream fs = File.OpenRead(inputFilePath))
{
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
}
Upravte dokument aplikace Word
Po načtení můžete naložený dokument upravit podle svých požadavků. Zde nahrazuji všechny výskyty slova „dokument“ „upraveným dokumentem“ v dokumentu aplikace Word pomocí níže uvedeného kódu C#.
    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");
        }
    }
Uložte upravený dokument aplikace Word pomocí možností
A konečně, při ukládání upraveného obsahu dokumentu můžete dále nastavit různé možnosti. Tyto možnosti zahrnují; stránkování, nastavení hesla, národního prostředí, ochrany nebo nastavení optimalizace paměti. Výše uvedené možnosti nastavím v níže uvedeném kódu a upravený dokument uložím jako soubor DOCX chráněný heslem a pouze pro čtení.
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);
    }
}
Kompletní kód
Pro vaše pohodlí uvádím úplný příklad C#, který je vysvětlen výše, a upraví dokument aplikace Word a poté jej uloží ve formátu DOCX.
// Upravte dokument Word v C# pomocí rozhraní API pro úpravu dokumentů a automatizaci GroupDocs
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{   // Load Document
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
    // Upravit dokument
    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");
            // Uložit dokument
            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);
                }
            }
        }
    }
}
Následuje výstupní dokument, ve kterém jsou všechny výskyty nahrazeny pomocí výše uvedeného kódu.
 
 Výstupní dokument - Všechny výskyty jsou nahrazeny
Závěr
Na závěr jsme diskutovali o úpravách dokumentů aplikace Word v jazyce C# pomocí rozhraní API pro úpravy dokumentů pro aplikace .NET. Pro vizuální úpravy vašich dokumentů můžete použít API s WYSIWYG editory. Poté můžete pokračovat ve vytváření vlastního editoru dokumentů. Podobně můžete také integrovat funkci úprav do vaší aplikace .NET.
Další podrobnosti, možnosti a příklady naleznete v úložišti documentation a GitHub. Pro další dotazy kontaktujte podporu na fóru.