使用 C# 在 Word 中创建表格 | 在 C# 中创建嵌套表格

Word 文档中的表格是一种强大的工具,可用于以清晰且结构化的格式组织和呈现数据。表格由行和列组成,行和列相交形成可包含文本、数字、图像或其他元素的单元格。在本文中,我们将学习如何使用 C# 以编程方式在 Word 文档中创建表格。本文通过代码示例展示了在 DOCX 文件中创建表格的各种方法。

本文涵盖以下主题:

在 Word 文档中创建表格的 C# 库

为了处理 Word 文档中的表格,我们将使用 Aspose.Words for .NET 库。这是一个强大的库,可让您直接在 .NET 应用程序中以编程方式动态创建和操作 Word 文档。

请使用以下命令从 NuGet 下载 DLL 或进行安装:

PM> Install-Package Aspose.Words

使用 C# 在 Word 文档中创建表格

有两种方法可以使用 Aspose.Words for .NET 在 Word 文档中创建表格:

  • 使用 DocumentBuilder 类
  • 使用 DOM(文档对象模型)

您可以选择最适合您需求的方法。让我们详细探讨每种方法。

使用 DocumentBuilder 创建表

DocumentBuilder 类可以高效、轻松地从头开始创建动态文档或修改现有文档。借助其全面的功能,我们可以无缝插入各种内容元素,包括文本、复选框、OLE 对象、段落、列表、表格、图像等等。

请按照以下步骤使用 DocumentBuilder 类在 Word 文档中创建表格。

  1. 创建 Document 类的对象。
  2. 创建 DocumentBuilder 类的对象。
  3. 使用 StartTable() 方法创建一个新表。
  4. 使用 InsertCell() 方法插入一个单元格。
  5. 使用 Write() 方法将文本插入单元格。
  6. 根据需要重复插入单元格并将文本插入单元格。
  7. 使用 EndRow() 方法结束一行。
  8. 使用 EndTable() 方法结束表。
  9. 最后,使用Save()方法保存Word文档。

以下代码示例展示如何使用 C# 在 Word 文档中创建表格。

// 此代码示例演示如何使用 C# 在 Word 文档中创建表格
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 在 Word 中创建表格

使用 DocumentBuilder 创建表

使用文档对象模型 (DOM) 创建表格

文档对象模型 (DOM) 是 Word 文档的内存表示形式。它允许通过编程方式读取、操作和修改 Word 文档的内容和格式。

请按照以下步骤使用 DOM 在 Word 文档中创建表格。

  1. 创建 Document 类的对象。
  2. 使用 Table() 类创建一个新表。
  3. 使用 AppendChild() 方法将表格添加到文档主体。
  4. 创建 Row 类的对象并使用 Table.AppendChild(Row) 方法将其插入表中。
  5. 创建 Cell 类的对象,设置格式选项,并向单元格添加文本。
  6. 使用 Row.AppendChild(Cell) 方法将单元格插入到行中。
  7. 之后,根据需要重复该过程以获得尽可能多的行。
  8. 最后,使用Save()方法保存Word文档。

以下代码示例展示如何使用 C# 在 Word 文档中创建表格。

// 此代码示例演示如何使用 C# 中的 DOM 在 Word 文档中创建表格
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) 创建表格

使用 C# 在 Word 文档中创建嵌套表格

我们还可以在表格的单元格内创建新表格。以下是在 Word 文档中创建嵌套表格的步骤。

  1. 创建 Document 类的对象。
  2. 创建 DocumentBuilder 类的对象。
  3. 使用 StartTable() 方法创建一个表并获取对象中对该表的引用。
  4. 使用 InsertCell() 方法插入一个单元格并获取对象中对该单元格的引用。
  5. 使用 DocumentBuilder.Write() 方法将文本插入单元格。
  6. 根据需要重复插入单元格并将文本插入单元格。
  7. 插入所有行后结束表格。
  8. 使用 MoveTo(cell.FirstParagraph) 方法将控制权移至所需单元格内。
  9. 通过插入单元格来创建另一个表格,完成后结束表格。 10.最后,使用Save()方法保存Word文档。

以下代码示例展示如何使用 C# 在 Word 文档中创建嵌套表格。

// 此代码示例演示如何使用 C# 在 Word 文档中创建嵌套表格
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");
使用 C# 在 Word 文档中创建嵌套表格

使用 C# 在 Word 文档中创建嵌套表格

使用 C# 克隆 Word 文档中的现有表格

我们可以按照以下步骤克隆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. 最后,使用Save()方法保存Word文档。

以下代码示例展示如何使用 C# 克隆 Word 文档中的表格。

// 此代码示例演示如何使用 C# 克隆 Word 文档中的现有表格
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");
使用 C# 克隆 Word 文档中的现有表格

使用 C# 克隆 Word 文档中的现有表格

通过 HTML 在 Word 文档中创建表格

我们还可以按照以下步骤使用 HTML 字符串在 Word 文档中创建表格:

  1. 创建 Document 类的对象。
  2. 创建 DocumentBuilder 类的对象。
  3. 使用 DocumentBuilder.InsertHtml(String) 方法将表的 HTML 字符串插入文档。
  4. 最后,使用 Document.Save() 方法保存文档。

以下代码示例显示如何使用 C# 在 Word 文档中插入 HTML 表格。

// 此代码示例演示如何使用 C# 在 Word 文档中插入 HTML 表格
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");
通过 HTML 在 Word 文档中创建表格

通过 HTML 在 Word 文档中创建表格

获取免费 API 许可证

您可以获得临时许可证来使用 Aspose.Words for .NET,不受评估限制。

结论

在本文中,我们学习了如何使用 C# 在 Word 文档中创建表格。我们探索了使用 C# 以编程方式创建表格的各种方法。我们还了解了如何创建嵌套表格或动态克隆 Word 文档中的现有表格。此外,您可以使用 文档 了解更多信息并探索库的各种其他功能。如有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看