
Таблицы в документе Word — мощный инструмент для организации и представления данных в четком и структурированном формате. Таблица состоит из строк и столбцов, которые пересекаются, образуя ячейки, которые могут содержать текст, числа, изображения или другие элементы. В этой статье мы узнаем, как программно создать таблицу в документах Word с помощью C#. В этой статье показаны различные методы создания таблиц в файле DOCX, поддерживаемые примерами кода.
В этой статье рассматриваются следующие темы:
- Библиотека C# для создания таблиц в документах Word
- Создать таблицу в документе Word
- Создайте вложенную таблицу в документах Word
- Клонировать существующую таблицу в документе Word
- Создать таблицу из HTML
Библиотека 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.
- Создайте объект класса Document.
- Создайте объект класса DocumentBuilder.
- Создайте новую таблицу с помощью метода StartTable().
- Вставьте ячейку с помощью метода InsertCell().
- Вставьте текст в ячейку с помощью метода Write().
- При необходимости повторите вставку ячеек и текста в ячейки.
- Завершите строку с помощью метода EndRow().
- Завершите таблицу с помощью метода EndTable().
- Наконец, сохраните документ 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");

Создайте таблицу с помощью DocumentBuilder
Создайте таблицу, используя объектную модель документа (DOM)
Объектная модель документа (DOM) — это представление документа Word в памяти. Он обеспечивает программный доступ для чтения, манипулирования и изменения содержимого и форматирования документа Word.
Следуйте инструкциям ниже, чтобы создать таблицу в документе Word с использованием DOM.
- Создайте объект класса Document.
- Создайте новую таблицу, используя класс Table().
- Добавьте таблицу в тело документа с помощью метода AppendChild().
- Создайте объект класса Row и вставьте его в таблицу с помощью метода Table.AppendChild(Row).
- Создайте объект класса Cell, задайте параметры форматирования и добавьте текст в ячейку.
- Вставьте ячейку в строку с помощью метода Row.AppendChild(Cell).
- После этого повторите процесс для любого количества строк.
- Наконец, сохраните документ Word с помощью метода Save().
В следующем примере кода показано, как создать таблицу в документе Word с помощью C#.
// В этом примере кода показано, как создать таблицу в документе Word с помощью DOM на C#.
Document doc = new Document();
// Начнем с создания объекта таблицы. Обратите внимание, что мы должны передать объект документа
// конструктору каждого узла. Это потому, что каждый создаваемый нами узел должен принадлежать
// к какому-то документу.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);
// Здесь мы могли бы вызвать SureMinimum, чтобы создать для нас строки и ячейки. Этот метод используется
// чтобы убедиться, что указанный узел действителен. В этом случае допустимая таблица должна иметь хотя бы одну строку и одну ячейку.
// Вместо этого мы создадим строку и таблицу самостоятельно.
// Это был бы лучший способ сделать это, если бы мы создавали таблицу внутри алгоритма.
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)
Создайте вложенную таблицу в документе Word с помощью C#
Мы также можем создать новую таблицу внутри ячейки таблицы. Ниже приведены шаги по созданию вложенной таблицы в документе Word.
- Создайте объект класса Document.
- Создайте объект класса DocumentBuilder.
- Создайте таблицу с помощью метода StartTable() и получите ссылку на таблицу в объекте.
- Вставьте ячейку с помощью метода InsertCell() и получите ссылку на ячейку в объекте.
- Вставьте текст в ячейку с помощью метода DocumentBuilder.Write().
- При необходимости повторите вставку ячеек и текста в ячейки.
- Завершите таблицу, когда вставите все строки.
- Переместите элемент управления внутри нужной ячейки с помощью метода MoveTo(cell.FirstParagraph).
- Создайте еще одну таблицу, вставив ячейки, и завершите ее.
- Наконец, сохраните документ 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, выполнив следующие действия:
- Загрузите существующий документ с таблицей, используя класс Document.
- Получите таблицу в объекте с помощью метода GetChild(NodeType.TABLE, int, boolean).
- Клонируйте таблицу с помощью метода Table.Clone(True).
- Вставьте клонированную таблицу с помощью метода Table.ParentNode.InsertAfter().
- Вставьте пустой абзац между таблицами, используя метод Table.ParentNode.InsertAfter(new Paragraph(Document), Table).
- Наконец, сохраните документ 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 из HTML
Мы также можем создать таблицу в документе Word, используя строку HTML, выполнив следующие действия:
- Создайте объект класса Document.
- Создайте объект класса DocumentBuilder.
- Вставьте строку HTML таблицы в документ с помощью метода DocumentBuilder.InsertHtml(String).
- Наконец, сохраните документ, используя метод 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
Получите бесплатную лицензию API
Вы можете получить временную лицензию для использования Aspose.Words for .NET без ограничений ознакомительной версии.
Заключение
В этой статье мы узнали, как создавать таблицы в документах Word с помощью C#. Мы изучили различные методы программного создания таблиц с использованием C#. Мы также увидели, как динамически создавать вложенные таблицы или клонировать существующие таблицы в документах Word. Кроме того, вы можете узнать больше и изучить множество других возможностей библиотеки, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме бесплатной поддержки.