Наиболее распространенными и широко используемыми форматами файлов для обработки текстов являются DOC, DOCX и ODT. Известные Microsoft Word и OpenOffice Writer поддерживают эти форматы, и мы обычно используем эти форматы для составления документов. Поэтому нам, как разработчикам, необходимо программно редактировать документы Word в наших приложениях. В этой статье мы обсудим, как редактировать документы Word на C#, используя .NET API для редактирования документов.
- .NET API — редактирование документов Word
- Редактировать документы Word в C#
.NET API для редактирования и автоматизации документов Word
Загрузите установщик DLL или MSI из раздела загрузок или установите API в свое приложение .NET с помощью NuGet.
re>PM> Install-Package GroupDocs.Editor
Редактировать документы Word в C
Сразу после настройки API вы можете быстро перейти к редактированию документа Word. Следующие шаги позволят вам отредактировать текстовый документ.
- Загрузите документ Word.
- Отредактируйте соответственно с опциями.
- Сохраните отредактированный документ.
Загрузите документ Word#
Во-первых, загрузите документ, указав путь к документу и пароль, если документ защищен.
re>using (FileStream fs = File.OpenRead(inputFilePath))
Редактировать документ Word#
После загрузки вы можете редактировать загруженный документ в соответствии с вашими требованиями. Здесь я заменяю все вхождения слова «документ» на «отредактированный документ» в документе Word, используя приведенный ниже код C#.
re> 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(); ListallResources = beforeEdit.AllResources; string editedContent = originalContent.Replace("document", "edited document"); > >
Сохраните отредактированный документ Word с параметрами#
Наконец, при сохранении отредактированного содержимого документа вы можете установить различные параметры. Эти варианты включают в себя; нумерация страниц, установка пароля, локаль, защита или параметры оптимизации памяти. Я устанавливаю вышеуказанные параметры в приведенном ниже коде и сохраняю отредактированный документ как защищенный паролем и доступный только для чтения файл DOCX.
Полный код#
Для вашего удобства я показываю полный пример C#, описанный выше, и он редактирует документ Word, а затем сохраняет его в формате DOCX.
Ниже приведен выходной документ, в котором все вхождения заменены с помощью приведенного выше кода.

Open Source C++ API for Word OOXML Documents
Create, Read, Update and Export Microsoft Office Word DOCX Files inside C++ Applications
What is DuckX?
The API is very stable and provides support for many important Word processing features such as creating and saving DOCX documents, paragraph addition, heading, inserting text, adding tables, adding images, paragraph styles, applying text formatting, and much more. Software Developers can use these APIs to create collaborative tools, such as real-time document editing and commenting features. DuckX word processing APIs offer software developers a powerful tool for building custom applications that cater to the needs of users. With their cost-effective, customizable, and scalable nature, these APIs are an attractive option for developers looking to create innovative solutions.
- At a Glance
- Platform Independence
- Supported File Formats
At A Glance
An overview of DuckX features.
- Generate DOCX
- Edit DOCX
- Read file
- Add Paragraphs
- Insert tables
- Prints DOCX
- Insert image
- Text alignment

DuckX
DuckX supports Microsoft Word Office Open XML file format.

DuckX
Platform Independence
DuckX only requires C++ 3.4 above

DuckX
Getting Started with DuckX
The preferred way is to create a build folder.
Create Build Folder for DuckX
C++ API to Open and Read Word DOCX Documents
DuckX library enables software professional to open an existing word DOCX documents inside their own applications without using Microsoft Word. You can go over paragraphs, runs, and print them. It also gives functionality for modifying word documents, You also can add images, text, fonts, text formatting and more.
How to Open and Read Word Documents via C++ API
re> #include int main()
Insert Xceed.Words.NET.DocX doc; string ProtectPassword; private string FileName; //конструктор для инициализации экземпляра класса public WordDocument(string TemplatePath, string password) < //создадим временный файл с именем tmpfile, куда положим итоговый документ var tmpfile = Path.GetTempFileName(); FileName = tmpfile; //получим шаблон файла, хранящийся на сервере doc = DocX.Load(TemplatePath); //получим пароль файла ProtectPassword = password; >//Найти и заменить текст в документе public void FindAndReplaceInDoc(string find, string replace) < if (doc == null) return; //снимем защиту с файла для редактирования защищённых областей doc.RemoveProtection(); //подставим необходимый текст doc.ReplaceText(find, replace); //восстановим пароль на файл doc.AddPasswordProtection(EditRestrictions.readOnly ,ProtectPassword); >//Сохранение документа во временный файл для последующей сериализации public bool SaveFile(string FileName) < if (doc != null) < try < doc.SaveAs(FileName); this.FileName = FileName; return true; >catch < return false; >> return false; > //Сериализация документа public byte[] GetDocument() < if (SaveFile(FileName)) < byte[] FileBytes = File.ReadAllBytes(FileName); return FileBytes; >return null; > >
После создания данного класса достаточно инициализировать экземпляр и заменить в нём искомое:
re>//получим пароль и путь к файлу на сервере string password = GetPassword(); string path = GetTemplatepath(); //получим информацию, которую мы ходим подставить в документ string new_text = GetData(); //инициализируем документ с помощью шаблона и пароля WordDocument doc = new WordDocument (path, password); //Подставляем новый текст doc. FindAndReplaceInDoc(“%template_text%”, new_text);
После того как изменения в файл будут внесены, останется лишь сериализовать документ для последующего получения на странице с помощью функции GetDocument().
В итоге мы получаем файл, в который вместо выбранных нами для изменения ключевых мест, были подставлены новые данные. Эти данные можно получить, например, из хранилища или определять из контекста.
Данный способ обработки документа позволяет значительно упростить рутинное заполнение файлов по шаблону, а также гарантировать корректность заполнения, исключив или минимизируя фактор человеческих ошибок при заполнении.




