Создание файла в формате docx

  • Михаил
  • 8 мин. на прочтение
  • 146
  • 20 Feb 2024
  • 30 May 2024

Библиотека WordRoller сама по себе не предоставляет возможность для создания файлов в формате Word (.docx). Однако, вы можете использовать WordRoller вместе с библиотекой Open XML SDK для создания документов Word.

Вот пример того, как вы можете использовать WordRoller и Open XML SDK для создания простого документа Word:

1. Установите пакеты NuGet "WordRoller" и "DocumentFormat.OpenXml" в ваш проект.

2. Создайте новый документ Word и добавьте в него текст, используя WordRoller для генерации случайных слов:

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using WordRoller;
// Создание экземпляра WordRoller
var wordRoller = new WordRoller.WordRoller();
// Создание документа Word
using (var document = WordprocessingDocument.Create("output.docx", WordprocessingDocumentType.Document))
{
   // Добавление главного документа
   var mainDocumentPart = document.AddMainDocumentPart();
   var body = new Body();
   // Добавление заголовка
   var heading = new Heading(new Run(new Text("Random Words"))) { ParagraphId = "p0", TextId = "t0" };
   body.Append(heading);
   // Добавление абзацев с случайными словами
   for (int i = 0; i < 5; i++)
   {
       var paragraph = new Paragraph(new Run(new Text(wordRoller.GetRandomWord(8))));
       body.Append(paragraph);
   }
   mainDocumentPart.Document = new Document(body);
}

В этом примере мы создаем новый документ Word, добавляем в него заголовок и несколько абзацев с случайными словами, сгенерированными с помощью WordRoller.

Обратите внимание, что Open XML SDK предоставляет обширный набор возможностей для работы с документами Word, включая форматирование текста, добавление таблиц, изображений и многое другое. Вы можете расширить этот пример, чтобы создавать более сложные документы Word, используя функции Open XML SDK наряду с WordRoller для генерации случайного содержимого.

Вот пример более сложного использования Open XML SDK с WordRoller:

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System;
using WordRoller;
// Создание экземпляра WordRoller
var wordRoller = new WordRoller.WordRoller();
// Создание документа Word
using (var document = WordprocessingDocument.Create("output.docx", WordprocessingDocumentType.Document))
{
   // Добавление главного документа
   var mainDocumentPart = document.AddMainDocumentPart();
   var body = new Body();
   // Добавление заголовка
   var heading = new Heading(new Run(new Text("Random Words and Sentences"))) { ParagraphId = "p0", TextId = "t0" };
   body.Append(heading);
   // Добавление абзацев с случайными словами
   for (int i = 0; i < 3; i++)
   {
       var paragraph = new Paragraph(new Run(new Text(wordRoller.GetRandomWord(8))));
       body.Append(paragraph);
   }
   // Добавление случайной таблицы
   var table = new Table();
   var tableProperties = new TableProperties(new TableBorders(
       new TopBorder { Val = new EnumValue(BorderValues.Single), Size = 6 },
       new BottomBorder { Val = new EnumValue(BorderValues.Single), Size = 6 },
       new LeftBorder { Val = new EnumValue(BorderValues.Single), Size = 6 },
       new RightBorder { Val = new EnumValue(BorderValues.Single), Size = 6 },
       new InsideHorizontalBorder { Val = new EnumValue(BorderValues.Single), Size = 6 },
       new InsideVerticalBorder { Val = new EnumValue(BorderValues.Single), Size = 6 }));
   table.AppendChild(tableProperties);
   for (int i = 0; i < 3; i++)
   {
       var tableRow = new TableRow();
       for (int j = 0; j < 3; j++)
        {
           var tableCell = new TableCell(new Paragraph(new Run(new Text(wordRoller.GetRandomWord(5)))));
           tableRow.AppendChild(tableCell);
       }
       table.AppendChild(tableRow);
   }
   body.Append(table);
   mainDocumentPart.Document = new Document(body);
}

В этом примере мы добавляем в документ Word заголовок, несколько абзацев с случайными словами и таблицу с случайными значениями, используя возможности Open XML SDK.

Комбинируя WordRoller и Open XML SDK, вы можете создавать разнообразные документы Word с динамически генерируемым содержимым, что может быть полезно в различных сценариях, таких как создание тестовых данных, генерация отчетов или разработка игр и приложений.