Розділений стіл

Contents
[ ]

Таблиця, представлена в об’єктній моделі документа Aspose.Words, складається з незалежних рядків і комірок, що полегшує розділення таблиці.

Щоб розділити таблицю на дві частини, нам просто потрібно перемістити деякі рядки з оригінальної таблиці в нову. Для цього нам потрібно вибрати рядок, на який ми хочемо розділити таблицю.

Ми можемо створити дві таблиці з оригінальної таблиці, виконавши такі прості дії:

  1. Створіть клон таблиці без клонування дочірніх елементів, щоб зберегти переміщені рядки та вставити їх після вихідної таблиці
  2. Починаючи із зазначеного рядка, перемістіть усі наступні рядки до другої таблиці

Наступний приклад коду показує, як розділити таблицю на дві таблиці в певному рядку:

// 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