Geteilte Tabelle

Contents
[ ]

Eine Tabelle, die im Aspose.Words -Dokumentobjektmodell dargestellt wird, besteht aus unabhängigen Zeilen und Zellen, wodurch es einfach ist, eine Tabelle zu teilen.

Um eine Tabelle zu manipulieren, um sie in zwei Tabellen aufzuteilen, müssen wir nur einige der Zeilen von der ursprünglichen Tabelle in die neue verschieben. Dazu müssen wir die Zeile auswählen, nach der wir die Tabelle teilen möchten.

Wir können zwei Tabellen aus der Originaltabelle erstellen, indem wir die folgenden einfachen Schritte ausführen:

  1. Erstellen Sie einen Klon der Tabelle, ohne die untergeordneten Elemente zu klonen, um die verschobenen Zeilen beizubehalten, und fügen Sie sie nach der ursprünglichen Tabelle ein
  2. Verschieben Sie ab der angegebenen Zeile alle nachfolgenden Zeilen in diese zweite Tabelle

Das folgende Codebeispiel zeigt, wie eine Tabelle in einer bestimmten Zeile in zwei Tabellen aufgeteilt wird:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
auto doc = MakeObject<Document>(MyDir + u"Tables.docx");
auto firstTable = System::ExplicitCast<Table>(doc->GetChild(NodeType::Table, 0, true));
// We will split the table at the third row (inclusive).
SharedPtr<Row> row = firstTable->get_Rows()->idx_get(2);
// Create a new container for the split table.
auto table = System::ExplicitCast<Table>(firstTable->Clone(false));
// Insert the container after the original.
firstTable->get_ParentNode()->InsertAfter(table, firstTable);
// Add a buffer paragraph to ensure the tables stay apart.
firstTable->get_ParentNode()->InsertAfter(MakeObject<Paragraph>(doc), firstTable);
SharedPtr<Row> currentRow;
do
{
currentRow = firstTable->get_LastRow();
table->PrependChild(currentRow);
} while (currentRow != row);
doc->Save(ArtifactsDir + u"WorkingWithTables.SplitTable.docx");
view raw split-table.h hosted with ❤ by GitHub