public void CombineTables()
{
//ExStart
//ExFor:Table
//ExFor:Cell.CellFormat
//ExFor:CellFormat.Borders
//ExFor:Table.Rows
//ExFor:Table.FirstRow
//ExFor:CellFormat.ClearFormatting
//ExId:CombineTables
//ExSummary:Shows how to combine the rows from two tables into one.
// Load the document.
Document doc = new Document(MyDir + "Table.Document.doc");
// Get the first and second table in the document.
// The rows from the second table will be appended to the end of the first table.
Table firstTable = (Table)doc.GetChild(NodeType.Table, 0, true);
Table secondTable = (Table)doc.GetChild(NodeType.Table, 1, true);
// Append all rows from the current table to the next.
// Due to the design of tables even tables with different cell count and widths can be joined into one table.
while (secondTable.HasChildNodes)
firstTable.Rows.Add(secondTable.FirstRow);
// Remove the empty table container.
secondTable.Remove();
doc.Save(MyDir + @"\Artifacts\Table.CombineTables.doc");
//ExEnd
Assert.AreEqual(1, doc.GetChildNodes(NodeType.Table, true).Count);
Assert.AreEqual(9, doc.FirstSection.Body.Tables[0].Rows.Count);
Assert.AreEqual(42, doc.FirstSection.Body.Tables[0].GetChildNodes(NodeType.Cell, true).Count);
}