Найпоширенішими та широко використовуваними форматами файлів для обробки текстів є DOC, DOCX і ODT. Відомі Microsoft Word і OpenOffice Writer підтримують ці формати, і ми зазвичай використовуємо ці формати для написання документів. Тому нам, як розробникам, необхідно програмно редагувати документи Word у наших програмах. У цій статті ми обговоримо, як редагувати документи Word на C# за допомогою .NET API для редагування документів.
У цій статті коротко обговорюються такі теми:
.NET API для редагування та автоматизації документів Word
У цій статті я буду використовувати GroupDocs.Editor for .NET у прикладах C#, який є API для редагування документів і дозволяє розробникам завантажувати, редагувати та зберігати різні формати документів за допомогою редакторів WYSIWYG HTML. Окрім форматів текстових документів, API підтримує редагування електронних таблиць, презентацій, форматів HTML, XML, TXT, DSV, TSV і CSV.
Завантажте інсталятор DLL або MSI із розділу завантажень або інсталюйте API у своїй програмі .NET за допомогою NuGet.
PM> Install-Package GroupDocs.Editor
Редагування документів Word на C#
Відразу після налаштування API ви можете швидко перейти до редагування документа Word. Наступні кроки дозволять вам редагувати текстовий документ.
- Завантажте документ Word.
- Відредагуйте відповідно з параметрами.
- Збережіть відредагований документ.
Завантажте документ Word
По-перше, завантажте документ, вказавши шлях до документа та пароль, якщо документ захищений.
using (FileStream fs = File.OpenRead(inputFilePath))
{
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
}
Відредагуйте документ Word
Після завантаження ви можете редагувати завантажений документ відповідно до ваших вимог. Тут я замінюю всі входження слова “документ” на “відредагований документ” у документі Word, використовуючи наведений нижче код 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");
}
}
Збережіть відредагований документ 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.
// Редагуйте документ Word на C# за допомогою API редагування та автоматизації документів GroupDocs
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);
}
}
}
}
}
Нижче наведено вихідний документ, у якому всі входження замінено за допомогою наведеного вище коду.

Вихідний документ – усі входження замінено
Висновок
На завершення ми обговорили редагування документів Word на C# за допомогою API редагування документів для програм .NET. Ви можете використовувати API з редакторами WYSIWYG для візуального редагування ваших документів. Після цього ви можете продовжити створення власного редактора документів. Подібним чином ви також можете інтегрувати функцію редагування у свою програму .NET.
Щоб отримати додаткові відомості, параметри та приклади, ви можете відвідати документацію і репозиторій GitHub. Щоб отримати додаткові запитання, зверніться до служби підтримки на форумі.