1 使用详解
1.1 GetChild()
说明:得到指定节点的子节点。
语法:public Node GetChild(NodeType nodeType, int index, bool isDeep);
可选值:
(1)NodeType.Table,5,节点类型为表格。
(2)NodeType.Row ,6,节点类型为行。
(3)NodeType.Cell ,7,节点类型为单元格。
1.2 Clone();
说明:复制节点。
语法:public Node Clone(bool isCloneChildren);
1.3 InsertAfter()
说明:在某一元素后面插入新元素。
语法:public Node InsertAfter(Node newChild, Node refChild);
2 代码实现
复制多个表格,并将复制的表格分页插入原有表格后面,使其一个表格一页。
using Aspose.Words;
using Aspose.Words.Tables;
Document doc=new Document("c:/test.doc");
DocumentBuilder builder =new DocumentBuiler();
int tableIndex=0;//表格索引
//得到文档中的第一个表格
Table table = (Table)doc.GetChild(NodeType.Table, tableIndex, true);
//创建段落
Paragraph lastParagraph = new Paragraph(doc);
//第一个表格末尾加段落
table.ParentNode.InsertAfter(lastParagraph, table);
//复制多个表格,并分页插入
for (int i = 0; i < 4; i++){
//分页
Run pageBreakRun = new Run(doc, ControlChar.PageBreak);
lastParagraph.AppendChild(pageBreakRun);
Table cloneTable = (Table)table.Clone(true);
//在文档末尾段落后面加入复制的表格
table.ParentNode.InsertAfter(cloneTable, lastParagraph);
lastParagraph = new Aspose.Words.Paragraph(doc);
//文档末尾插入段落
table.ParentNode.InsertAfter(lastParagraph, cloneTable);
}
注:
(1)如果出现System.ArgumentException:The reference node is not a child of this node.错误可参考以下博客。
Aspose.Words System.ArgumentException:The reference node is not a child of this node.错误解决