I formati di file di elaborazione testi più comuni e utilizzati sono DOC, DOCX e ODT. I famosi Microsoft Word e OpenOffice Writer supportano questi formati e normalmente utilizziamo questi formati per la stesura dei documenti. Pertanto, come sviluppatore, abbiamo ampiamente bisogno di modificare i documenti di Word nelle nostre applicazioni in modo programmatico. In questo articolo, discuteremo di come modificare i documenti di Word in C# utilizzando l’API .NET per la modifica dei documenti.

Di seguito gli argomenti trattati brevemente in questo articolo:

API .NET per la modifica e l’automazione di documenti Word

In questo articolo, userò GroupDocs.Editor for .NET negli esempi C#, che è l’API di modifica dei documenti e consente agli sviluppatori di caricare, modificare e salvare vari formati di documenti utilizzando gli editor HTML WYSIWYG. Oltre ai formati di documenti di elaborazione testi, l’API supporta la modifica di fogli di calcolo, presentazioni, HTML, XML, TXT, DSV, TSV e CSV.

Scarica il programma di installazione delle DLL o MSI dalla sezione download o installa l’API nella tua applicazione .NET tramite NuGet.

PM> Install-Package GroupDocs.Editor

Modifica documenti Word in C#

Subito dopo aver configurato l’API, puoi passare rapidamente alla modifica del documento di Word. I seguenti passaggi ti consentiranno di modificare il documento di elaborazione di testo.

  • Carica il documento di Word.
  • Modifica di conseguenza con le opzioni.
  • Salva il documento modificato.

Carica il documento di Word

Innanzitutto, carica il documento fornendo il percorso del documento e la password, se il documento è protetto.

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

Modifica il documento di Word

Dopo il caricamento, è possibile modificare il documento caricato secondo le proprie esigenze. Qui sto sostituendo tutte le occorrenze della parola “documento” con il “documento modificato” in un documento di Word usando il codice C# sottostante.

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

Salva il documento Word modificato con Opzioni

Infine, durante il salvataggio del contenuto del documento modificato, è possibile impostare ulteriormente varie opzioni. Queste opzioni includono; impaginazione, impostare password, impostazioni locali, protezione o ottimizzazione della memoria. Ho impostato le opzioni sopra nel codice sotto indicato e salvo il documento modificato come file DOCX protetto da password e di sola lettura.

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

Codice completo

Per tua comodità, sto mostrando l’esempio C# completo che è spiegato sopra e modifica il documento di Word e quindi lo salva in formato DOCX.

// Modifica il documento Word in C# utilizzando l'API di automazione e modifica dei documenti di GroupDocs
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{   // Load Document
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
    // Modifica documento
    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");
            // Salva documento
            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);
                }
            }
        }
    }
}

Quello che segue è il documento di output in cui tutte le occorrenze vengono sostituite utilizzando il codice precedente.

documento docx modificato utilizzando l'API dell'editor

Documento di output: tutte le occorrenze vengono sostituite

Conclusione

Per concludere, abbiamo discusso della modifica di documenti Word in C# utilizzando l’API di modifica dei documenti per le applicazioni .NET. Puoi utilizzare l’API con gli editor WYSIWYG per l’editing visivo dei tuoi documenti. Successivamente, puoi andare avanti per creare il tuo editor di documenti. Allo stesso modo, puoi anche integrare la funzionalità di modifica all’interno della tua applicazione .NET.

Per maggiori dettagli, opzioni ed esempi, puoi visitare la documentazione e il repository GitHub. Per ulteriori domande, contatta il supporto sul forum.

articoli Correlati

Guarda anche