Створення таблиці в Word за допомогою C# | Створення вкладених таблиць у C#

Таблиці в документі Word є потужним інструментом для організації та представлення даних у зрозумілому та структурованому форматі. Таблиця складається з рядків і стовпців, які перетинаються, утворюючи клітинки, які можуть містити текст, числа, зображення чи інші елементи. У цій статті ми дізнаємося, як програмно створити таблицю в документах Word за допомогою C#. У цій статті показано різні методи створення таблиць у файлі DOCX, які підтримуються зразками коду.

Ця стаття охоплює такі теми:

Бібліотека C# для створення таблиць у документах Word

Для роботи з таблицями в документах Word ми будемо використовувати бібліотеку Aspose.Words for .NET. Це надійна бібліотека, яка дає змогу програмно динамічно створювати та керувати документами Word безпосередньо в програмах .NET.

Завантажте DLL або встановіть його з NuGet за допомогою такої команди:

PM> Install-Package Aspose.Words

Створення таблиці в документі Word на C#

Існує два способи створення таблиць у документах Word за допомогою Aspose.Words for .NET:

  • Використання класу DocumentBuilder
  • Використання DOM (об’єктної моделі документа)

Ви можете вибрати метод, який найкраще відповідає вашим вимогам. Тож розглянемо кожен із цих методів докладніше.

Створіть таблицю за допомогою DocumentBuilder

Клас DocumentBuilder дозволяє ефективно та легко створювати динамічні документи з нуля або змінювати існуючі. Завдяки повному набору функцій ми можемо легко вставляти різноманітні елементи вмісту, зокрема текст, прапорці, об’єкти OLE, абзаци, списки, таблиці, зображення та багато іншого.

Виконайте наведені нижче дії, щоб створити таблицю в документі Word за допомогою класу DocumentBuilder.

  1. Створіть об’єкт класу Document.
  2. Створіть об’єкт класу DocumentBuilder.
  3. Створіть нову таблицю за допомогою методу StartTable().
  4. Вставте клітинку за допомогою методу InsertCell().
  5. Вставте текст у клітинку за допомогою методу Write().
  6. Повторіть вставлення клітинок і тексту в клітинки за потреби.
  7. Завершіть рядок за допомогою методу EndRow().
  8. Завершіть таблицю за допомогою методу EndTable().
  9. Нарешті, збережіть документ Word за допомогою методу Save().

У наведеному нижче прикладі коду показано, як створити таблицю в документі Word за допомогою C#.

// Цей приклад коду демонструє, як створити таблицю в документі Word за допомогою C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Почніть будувати таблицю.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// Побудуйте другу клітинку.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// Викличте наступний метод, щоб завершити рядок і почати новий рядок.
builder.EndRow();

// Побудуйте першу клітинку другого ряду.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// Побудуйте другу клітинку.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// Сигнал, що ми закінчили створення таблиці.
builder.EndTable();

doc.Save("CreateSimpleTable.docx");
Створіть таблицю в Word за допомогою DocumentBuilder

Створіть таблицю за допомогою DocumentBuilder

Створення таблиці за допомогою об’єктної моделі документа (DOM)

Об’єктна модель документа (DOM) — це представлення документа Word у пам’яті. Він забезпечує програмний доступ для читання, керування та зміни вмісту та форматування документа Word.

Виконайте наведені нижче дії, щоб створити таблицю в документі Word за допомогою DOM.

  1. Створіть об’єкт класу Document.
  2. Створіть нову таблицю за допомогою класу Table().
  3. Додайте таблицю до тіла документа за допомогою методу AppendChild().
  4. Створіть об’єкт класу Row і вставте його в таблицю за допомогою методу Table.AppendChild(Row).
  5. Створіть об’єкт класу Cell, задайте параметри форматування та додайте текст до клітинки.
  6. Вставте клітинку в рядок за допомогою методу Row.AppendChild(Cell).
  7. Після цього повторіть процес для стільки рядів, скільки хочете.
  8. Нарешті, збережіть документ Word за допомогою методу Save().

У наведеному нижче прикладі коду показано, як створити таблицю в документі Word за допомогою C#.

// Цей приклад коду демонструє, як створити таблицю в документі Word за допомогою DOM у C#
Document doc = new Document();

// Ми починаємо зі створення об’єкта таблиці. Зверніть увагу, що ми повинні передати об’єкт документа
// до конструктора кожного вузла. Це тому, що кожен створений нами вузол повинен належати
// до якогось документа.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Тут ми можемо викликати EnsureMinimum, щоб створити для нас рядки та клітинки. Цей метод використовується
// щоб переконатися, що вказаний вузол дійсний. У цьому випадку дійсна таблиця повинна мати принаймні один рядок і одну клітинку.

// Замість цього ми створимо рядок і таблицю самостійно.
// Це був би найкращий спосіб зробити це, якби ми створювали таблицю всередині алгоритму.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// Тепер ми можемо застосувати будь-які налаштування автопідгонки.
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));

// Додайте клітинку
row.AppendChild(cell);

// Потім ми повторюємо процес для інших комірок і рядків у таблиці.
// Ми також можемо пришвидшити роботу, клонуючи існуючі клітинки та рядки.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Збережіть документ
doc.Save("InsertTableDirectly.docx");
Створення таблиці за допомогою об’єктної моделі документа (DOM)

Створення таблиці за допомогою об’єктної моделі документа (DOM)

Створення вкладеної таблиці в документі Word за допомогою C#

Ми також можемо створити нову таблицю в клітинці таблиці. Нижче наведено кроки для створення вкладеної таблиці в документі Word.

  1. Створіть об’єкт класу Document.
  2. Створіть об’єкт класу DocumentBuilder.
  3. Створіть таблицю за допомогою методу StartTable() і отримайте посилання на таблицю в об’єкті.
  4. Вставте комірку за допомогою методу InsertCell() і отримайте посилання на комірку в об’єкті.
  5. Вставте текст у клітинку за допомогою методу DocumentBuilder.Write().
  6. Повторіть вставлення клітинок і тексту в клітинки за потреби.
  7. Завершіть таблицю, коли вставите всі рядки.
  8. Перемістіть елемент керування всередину потрібної клітинки за допомогою методу MoveTo(cell.FirstParagraph).
  9. Створіть іншу таблицю, вставивши клітинки, і завершіть таблицю, коли закінчите.
  10. Нарешті збережіть документ Word за допомогою методу Save().

У наведеному нижче прикладі коду показано, як створити вкладену таблицю в документі Word за допомогою C#.

// Цей приклад коду демонструє, як створити вкладену таблицю в документі Word за допомогою C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Cell cell = builder.InsertCell();
builder.Writeln("Outer Table Cell 1");

builder.InsertCell();
builder.Writeln("Outer Table Cell 2");

// Цей виклик важливий для створення вкладеної таблиці в першій таблиці. 
// Без цього виклику клітинки, вставлені нижче, будуть додані до зовнішньої таблиці.
builder.EndTable();

// Перехід до першої комірки зовнішньої таблиці.
builder.MoveTo(cell.FirstParagraph);

// Побудуйте внутрішній стіл.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// Збережіть документ
doc.Save("NestedTable.docx");
Створення вкладеної таблиці в документі Word за допомогою C#

Створення вкладеної таблиці в документі Word за допомогою C#

Клонування наявної таблиці в документі Word у C#

Ми можемо клонувати існуючу таблицю в документі Word, виконавши наведені нижче дії.

  1. Завантажте наявний документ із таблицею за допомогою класу Document.
  2. Отримайте таблицю в об’єкті за допомогою методу GetChild(NodeType.TABLE, int, boolean).
  3. Клонуйте таблицю за допомогою методу Table.Clone(True).
  4. Вставте клоновану таблицю за допомогою методу Table.ParentNode.InsertAfter().
  5. Вставте порожній абзац між таблицями за допомогою методу Table.ParentNode.InsertAfter(new Paragraph(Document), Table).
  6. Нарешті, збережіть документ Word за допомогою методу Save().

У наведеному нижче прикладі коду показано, як клонувати таблицю в документі Word за допомогою C#.

// Цей приклад коду демонструє, як клонувати існуючу таблицю в документі Word за допомогою C#
Document doc = new Document("Tables.docx");

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

// Клонуйте таблицю та вставте її в документ після оригіналу.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// Вставте порожній абзац між двома таблицями,
// інакше вони будуть об’єднані в один після збереження, це пов’язано з перевіркою документів.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
            
doc.Save("CloneCompleteTable.docx");
Клонування наявної таблиці в документі Word у C#

Клонування наявної таблиці в документі Word у C#

Створіть таблицю в документі Word із HTML

Ми також можемо створити таблицю в документі Word за допомогою рядка HTML, виконавши наведені нижче дії.

  1. Створіть об’єкт класу Document.
  2. Створіть об’єкт класу DocumentBuilder.
  3. Вставте рядок HTML таблиці в документ за допомогою методу DocumentBuilder.InsertHtml(String).
  4. Нарешті, збережіть документ за допомогою методу Document.Save().

У наведеному нижче прикладі коду показано, як вставити таблицю HTML у документ Word за допомогою C#.

// Цей приклад коду демонструє, як вставити таблицю HTML у документ Word за допомогою C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Зауважте, що AutoFitSettings не застосовується до таблиць, вставлених із HTML.
builder.InsertHtml("<table>" +
                   "<tr>" +
                   "<td>Row 1, Cell 1</td>" +
                   "<td>Row 1, Cell 2</td>" +
                   "</tr>" +
                   "<tr>" +
                   "<td>Row 2, Cell 2</td>" +
                   "<td>Row 2, Cell 2</td>" +
                   "</tr>" +
                   "</table>");

doc.Save("InsertTableFromHtml.docx");
Створіть таблицю в документі Word із HTML

Створіть таблицю в документі Word із HTML

Отримайте безкоштовну ліцензію API

Ви можете отримати тимчасову ліцензію на використання Aspose.Words for .NET без обмежень оцінювання.

Висновок

У цій статті ми дізналися, як створювати таблиці в документах Word за допомогою C#. Ми досліджували різні методи програмного створення таблиць за допомогою C#. Ми також бачили, як динамічно створювати вкладені таблиці або клонувати існуючі таблиці в документах Word. Крім того, ви можете дізнатися більше та вивчити різноманітні інші функції бібліотеки за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також