zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Aspose.Words for .NET使用表格教程之合并和拆分表

Net教程 for 合并 表格 拆分 words Aspose
2023-09-11 14:14:49 时间

Aspose.Words For .Net是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,API支持所有流行的Word处理文件格式,并允许将Word文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。 

 欢迎下载|体验更多Aspose文档管理产品  或 加入Aspose技术交流群(761297826)

【下载Aspose.Words for .NET最新试用版】

接下来我们将进入“使用格式”的介绍,其中包括应用格式、介绍和创建表、添加和拆分表以及使用列和行。


表是word文档中常见的元素。它们允许在具有行和列的网格结构中清晰地组织和显示大量信息。它们还经常用作页面布局工具,并且是显示选项卡数据(带有选项卡停止)的更好选择,因为它们允许更好地控制内容的设计和布局。

表由Cell,Row和Column等元素组成。这些概念通常适用于所有表,无论它们来自Microsoft Word文档还是HTML文档,完全支持Aspose.Words中的表。您可以自由编辑,更改,添加和删除表格。还支持高保真表格的渲染。

合并和拆分表

在Aspose.Words文档对象模型中表示的表由独立的行和单元组成,这使得连接或拆分表变得容易。为了操纵表以拆分或与另一个表连接,我们只需要将行从一个表移动到另一个表。

将两个表合并为一个

第二个表中的行只需要移动到第一个表的末尾,并删除第二个表的容器。下面的示例演示如何将两个表中的行合并为一个。

// 加载文档.
Document doc = new Document(dataDir + fileName);

//获取文档中的第一个和第二个表
//第二个表中的行将附加到第一个表的末尾
Table firstTable = (Table)doc.GetChild(NodeType.Table, 0, true);
Table secondTable = (Table)doc.GetChild(NodeType.Table, 1, true);

//将当前表中的所有行附加到下一个
// 由于表的设计,即使具有不同单元数和宽度的表也可以连接到一个表中
while (secondTable.HasChildNodes)
    firstTable.Rows.Add(secondTable.FirstRow);

//删除空表容器
secondTable.Remove();
dataDir = dataDir + "Table.CombineTables_out.doc";
//保存完成的文档
doc.Save(dataDir);

将表拆分为两个单独的表

我们首先需要在分割表的位置选择一行。一旦我们知道这一点,我们就可以通过以下简单步骤从原始表创建两个表:

  1. 创建表的克隆而不克隆子项以保存移动的行并将其插入原始表之后。
  2. 从指定的行开始将所有后续行移动到此第二个表。
//加载文档
Document doc = new Document(dataDir + fileName);

//获取文档中的第一个表
Table firstTable = (Table)doc.GetChild(NodeType.Table, 0, true);

// 我们将在第三行(包括)分割表格
Row row = firstTable.Rows[2];

//为拆分表创建一个新容器.
Table table = (Table)firstTable.Clone(false);

//在原始文件后插入容器
firstTable.ParentNode.InsertAfter(table, firstTable);

//添加缓冲段落以确保表格保持分开
firstTable.ParentNode.InsertAfter(new Paragraph(doc), firstTable);

Row currentRow;

do
{
    currentRow = firstTable.LastRow;
    table.PrependChild(currentRow);
}
while (currentRow != row);

dataDir = dataDir + "Table.SplitTable_out.doc";
//保存完成的文档
doc.Save(dataDir);