最常見和廣泛使用的文字處理文件格式是 DOC、DOCX 和 ODT。著名的 Microsoft Word 和 OpenOffice Writer 都支持這些格式,我們通常使用這些格式來起草文檔。因此,作為開發人員,我們廣泛需要以編程方式在我們的應用程序中編輯 Word 文檔。在本文中,我們將討論如何使用 .NET API 進行文檔編輯,在 C# 中編輯 Word 文檔。
以下是本文簡要討論的主題:
用於 Word 文檔編輯和自動化的 .NET API
在本文中,我將在 C# 示例中使用 GroupDocs.Editor for .NET,它是文檔編輯 API,允許開發人員使用 WYSIWYG HTML 編輯器加載、編輯和保存各種文檔格式。除了文字處理文檔格式外,API 還支持編輯電子表格、演示文稿、HTML、XML、TXT、DSV、TSV 和 CSV 格式。
從 下載部分 下載 DLL 或 MSI 安裝程序,或通過 NuGet 在您的 .NET 應用程序中安裝 API。
PM> Install-Package GroupDocs.Editor
在 C# 中編輯 Word 文檔
設置 API 後,您可以快速開始編輯 Word 文檔。以下步驟將讓您編輯文字處理文檔。
- 加載 Word 文檔。
- 使用選項進行相應編輯。
- 保存編輯的文檔。
載入Word文檔
首先,如果文檔受保護,請通過提供文檔路徑和密碼加載文檔。
using (FileStream fs = File.OpenRead(inputFilePath))
{
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
}
編輯Word文檔
加載後,您可以根據需要編輯加載的文檔。在這裡,我使用以下 C# 代碼將 Word 文檔中出現的所有單詞“文檔”替換為“已編輯文檔”。
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");
}
}
使用選項保存編輯後的 Word 文檔
最後,在保存編輯好的文檔內容的同時,還可以進一步設置各種選項。這些選項包括;分頁、設置密碼、區域設置、保護或內存優化設置。我在下面提到的代碼中設置了上述選項,並將編輯後的文檔保存為受密碼保護的只讀 DOCX 文件。
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);
}
}
完整代碼
為了您的方便,我展示了上面解釋的完整 C# 示例,它編輯 Word 文檔,然後將其保存為 DOCX 格式。
// 使用 GroupDocs 文檔編輯和自動化 API 在 C# 中編輯 Word 文檔
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{ // Load Document
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
// 編輯文檔
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");
// 保存文件
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);
}
}
}
}
}
以下是使用上述代碼替換所有匹配項的輸出文檔。
結論
最後,我們討論了使用 .NET 應用程序的文檔編輯 API 在 C# 中編輯 Word 文檔。您可以將 API 與 WYSIWYG 編輯器結合使用,以對文檔進行可視化編輯。之後,您可以繼續構建自己的文檔編輯器。同樣,您也可以將編輯功能集成到您的 .NET 應用程序中。
有關更多詳細信息、選項和示例,您可以訪問 文檔 和 GitHub 存儲庫。如需進一步查詢,請聯繫 論壇 上的支持人員。