Класс Aspose::Words::Tables::Table

Table class

Представляет таблицу в документе Word. Чтобы узнать больше, посетите статью документации Working with Tables.

class Table : public Aspose::Words::CompositeNode

Методы

МетодОписание
Accept(System::SharedPtr<Aspose::Words::DocumentVisitor>) overrideПринимает посетителя.
AcceptEnd(System::SharedPtr<Aspose::Words::DocumentVisitor>) overrideПринимает посетителя для посещения конца таблицы.
AcceptStart(System::SharedPtr<Aspose::Words::DocumentVisitor>) overrideПринимает посетителя для посещения начала таблицы.
AppendChild(T)
AutoFit(Aspose::Words::Tables::AutoFitBehavior)Изменяет размер таблицы и ячеек в соответствии с указанным поведением автоматической подгонки.
ClearBorders()Удаляет все границы таблицы и ячеек в этой таблице.
ClearShading()Удаляет всю заливку таблицы.
Clone(bool)Создаёт дубликат узла.
ConvertToHorizontallyMergedCells()Преобразует ячейки, объединённые по ширине, в ячейки, объединённые с помощью HorizontalMerge.
EnsureMinimum()Если в таблице нет строк, создаёт и добавляет одну Row.
get_AbsoluteHorizontalDistance()Получает или задаёт абсолютную горизонтальную позицию плавающей таблицы, указанную в свойствах таблицы, в пунктах. Значение по умолчанию — 0.
get_AbsoluteVerticalDistance()Получает или задаёт абсолютную вертикальную позицию плавающей таблицы, указанную в свойствах таблицы, в пунктах. Значение по умолчанию — 0.
get_Alignment()Указывает, как встроенная таблица выравнивается в документе.
get_AllowAutoFit()Позволяет Microsoft Word и Aspose.Words автоматически изменять размер ячеек в таблице, чтобы они соответствовали содержимому.
get_AllowCellSpacing()Получает или задаёт параметр “Allow spacing between cells”.
get_AllowOverlap()Определяет, разрешает ли плавающая таблица другим плавающим объектам в документе перекрывать её границы при отображении. Значение по умолчанию — true.
get_Bidi()Получает или задаёт, является ли эта таблица таблицей справа налево.
get_BottomPadding()Получает или задаёт количество пространства (в пунктах), добавляемого под содержимое ячеек.
get_CellSpacing()Получает или задает величину пространства (в пунктах) между ячейками.
get_Count()Возвращает количество непосредственных дочерних элементов этого узла.
get_CustomNodeId() constУказывает пользовательский идентификатор узла.
get_Description()Получает или задаёт описание этой таблицы. Оно предоставляет альтернативное текстовое представление информации, содержащейся в таблице.
get_DistanceBottom()Получает или задаёт расстояние между нижней границей таблицы и окружающим текстом, в пунктах.
get_DistanceLeft()Получает или задаёт расстояние между левой границей таблицы и окружающим текстом, в пунктах.
get_DistanceRight()Получает или задаёт расстояние между правой границей таблицы и окружающим текстом, в пунктах.
get_DistanceTop()Получает или задаёт расстояние между верхней границей таблицы и окружающим текстом, в пунктах.
virtual get_Document() constВозвращает документ, к которому принадлежит этот узел.
get_FirstChild() constВозвращает первого дочернего узла.
get_FirstRow()Возвращает первый узел Row в таблице.
get_HasChildNodes()Возвращает true, если у этого узла есть дочерние узлы.
get_HorizontalAnchor()Получает базовый объект, от которого должно рассчитываться горизонтальное позиционирование плавающей таблицы. Значение по умолчанию — Column.
get_IsComposite() overrideВозвращает true, поскольку этот узел может иметь дочерние узлы.
get_LastChild() constВозвращает последнего дочернего узла.
get_LastRow()Возвращает последний узел Row в таблице.
get_LeftIndent()Получает или задает значение, представляющее левый отступ таблицы.
get_LeftPadding()Получает или задает количество пространства (в пунктах), добавляемого слева от содержимого ячеек.
get_NextNode() const
get_NextSibling()Возвращает узел, непосредственно следующий за этим узлом.
get_NodeType() const overrideВозвращает Table.
get_ParentNode()Возвращает непосредственного родителя этого узла.
get_PreferredWidth()Получает или задает предпочтительную ширину таблицы.
get_PreviousSibling()Возвращает узел, непосредственно предшествующий этому узлу.
get_PrevNode() const
get_Range()Возвращает объект Range, представляющий часть документа, содержащуюся в этом узле.
get_RelativeHorizontalAlignment()Получает или задает относительное горизонтальное выравнивание плавающей таблицы.
get_RelativeVerticalAlignment()Получает или задает относительное вертикальное выравнивание плавающей таблицы.
get_RightPadding()Получает или задает количество пространства (в пунктах), добавляемого справа от содержимого ячеек.
get_Rows()Обеспечивает типизированный доступ к строкам таблицы.
get_Style()Получает или задает стиль таблицы, применяемый к этой таблице.
get_StyleIdentifier()Получает или задает независимый от локали идентификатор стиля таблицы, применяемый к этой таблице.
get_StyleName()Получает или задает имя стиля таблицы, применяемого к этой таблице.
get_StyleOptions()Получает или задает битовые флаги, определяющие, как стиль таблицы применяется к этой таблице.
get_TextWrapping()Получает или задает TextWrapping для таблицы.
get_Title()Получает или задает заголовок этой таблицы. Он предоставляет альтернативное текстовое представление информации, содержащейся в таблице.
get_TopPadding()Получает или задает количество пространства (в пунктах), добавляемого над содержимым ячеек.
get_VerticalAnchor()Получает базовый объект, из которого должно рассчитываться вертикальное позиционирование плавающей таблицы. Значение по умолчанию — Margin.
GetAncestor(Aspose::Words::NodeType)Возвращает первого предка указанного NodeType.
GetAncestorOf()
GetChild(Aspose::Words::NodeType, int32_t, bool)Возвращает N‑й дочерний узел, соответствующий указанному типу.
GetChildNodes(Aspose::Words::NodeType, bool)Возвращает живую коллекцию дочерних узлов, соответствующих указанному типу.
GetEnumerator() overrideОбеспечивает поддержку итерации в стиле foreach по дочерним узлам этого узла.
GetText() overrideПолучает текст этого узла и всех его дочерних узлов.
GetType() const override
IndexOf(const System::SharedPtr<Aspose::Words::Node>&)Возвращает индекс указанного дочернего узла в массиве дочерних узлов.
InsertAfter(T, const System::SharedPtr<Aspose::Words::Node>&)
InsertBefore(T, const System::SharedPtr<Aspose::Words::Node>&)
Is(const System::TypeInfo&) const override
IsAncestorNode(const System::SharedPtr<Aspose::Words::Node>&)
NextPreOrder(const System::SharedPtr<Aspose::Words::Node>&)Получает следующий узел согласно алгоритму обхода дерева в порядке предобхода.
static NodeTypeToString(Aspose::Words::NodeType)Вспомогательный метод, преобразующий значение перечисления типа узла в удобочитаемую строку.
PrependChild(T)
PreviousPreOrder(const System::SharedPtr<Aspose::Words::Node>&)Получает предыдущий узел согласно алгоритму обхода дерева в порядке предобхода.
Remove()Удаляет себя из родительского узла.
RemoveAllChildren()Удаляет все дочерние узлы текущего узла.
RemoveChild(T)
RemoveSmartTags()Удаляет все дочерние узлы SmartTag текущего узла.
SelectNodes(const System::String&)Выбирает список узлов, соответствующих XPath-выражению.
SelectSingleNode(const System::String&)Выбирает первый Node, соответствующий XPath-выражению.
set_AbsoluteHorizontalDistance(double)Сеттер для Aspose::Words::Tables::Table::get_AbsoluteHorizontalDistance.
set_AbsoluteVerticalDistance(double)Сеттер для Aspose::Words::Tables::Table::get_AbsoluteVerticalDistance.
set_Alignment(Aspose::Words::Tables::TableAlignment)Сеттер для Aspose::Words::Tables::Table::get_Alignment.
set_AllowAutoFit(bool)Сеттер для Aspose::Words::Tables::Table::get_AllowAutoFit.
set_AllowCellSpacing(bool)Сеттер для Aspose::Words::Tables::Table::get_AllowCellSpacing.
set_Bidi(bool)Сеттер для Aspose::Words::Tables::Table::get_Bidi.
set_BottomPadding(double)Сеттер для Aspose::Words::Tables::Table::get_BottomPadding.
set_CellSpacing(double)Сеттер для Aspose::Words::Tables::Table::get_CellSpacing.
set_CustomNodeId(int32_t)Сеттер для Aspose::Words::Node::get_CustomNodeId.
set_Description(const System::String&)Сеттер для Aspose::Words::Tables::Table::get_Description.
set_DistanceBottom(double)Сеттер для Aspose::Words::Tables::Table::get_DistanceBottom.
set_DistanceLeft(double)Сеттер для Aspose::Words::Tables::Table::get_DistanceLeft.
set_DistanceRight(double)Сеттер для Aspose::Words::Tables::Table::get_DistanceRight.
set_DistanceTop(double)Сеттер для Aspose::Words::Tables::Table::get_DistanceTop.
set_HorizontalAnchor(Aspose::Words::Drawing::RelativeHorizontalPosition)Сеттер для Aspose::Words::Tables::Table::get_HorizontalAnchor.
set_LeftIndent(double)Сеттер для Aspose::Words::Tables::Table::get_LeftIndent.
set_LeftPadding(double)Сеттер для Aspose::Words::Tables::Table::get_LeftPadding.
set_NextNode(const System::SharedPtr<Aspose::Words::Node>&)
set_PreferredWidth(const System::SharedPtr<Aspose::Words::Tables::PreferredWidth>&)Сеттер для Aspose::Words::Tables::Table::get_PreferredWidth.
set_PrevNode(const System::SharedPtr<Aspose::Words::Node>&)
set_RelativeHorizontalAlignment(Aspose::Words::Drawing::HorizontalAlignment)Сеттер для Aspose::Words::Tables::Table::get_RelativeHorizontalAlignment.
set_RelativeVerticalAlignment(Aspose::Words::Drawing::VerticalAlignment)Сеттер для Aspose::Words::Tables::Table::get_RelativeVerticalAlignment.
set_RightPadding(double)Сеттер для Aspose::Words::Tables::Table::get_RightPadding.
set_Style(const System::SharedPtr<Aspose::Words::Style>&)Сеттер для Aspose::Words::Tables::Table::get_Style.
set_StyleIdentifier(Aspose::Words::StyleIdentifier)Сеттер для Aspose::Words::Tables::Table::get_StyleIdentifier.
set_StyleName(const System::String&)Сеттер для Aspose::Words::Tables::Table::get_StyleName.
set_StyleOptions(Aspose::Words::Tables::TableStyleOptions)Сеттер для Aspose::Words::Tables::Table::get_StyleOptions.
set_TextWrapping(Aspose::Words::Tables::TextWrapping)Сеттер для Aspose::Words::Tables::Table::get_TextWrapping.
set_Title(const System::String&)Сеттер для Aspose::Words::Tables::Table::get_Title.
set_TopPadding(double)Сеттер для Aspose::Words::Tables::Table::get_TopPadding.
set_VerticalAnchor(Aspose::Words::Drawing::RelativeVerticalPosition)Сеттер для Aspose::Words::Tables::Table::get_VerticalAnchor.
SetBorder(Aspose::Words::BorderType, Aspose::Words::LineStyle, double, System::Drawing::Color, bool)Устанавливает указанную границу таблицы с заданным стилем линии, шириной и цветом.
SetBorders(Aspose::Words::LineStyle, double, System::Drawing::Color)Устанавливает все границы таблицы с заданным стилем линии, шириной и цветом.
SetParent(const System::SharedPtr<Aspose::Words::Node>&)
SetShading(Aspose::Words::TextureIndex, System::Drawing::Color, System::Drawing::Color)Устанавливает затенение таблицы на указанные значения.
SetTemplateWeakPtr(uint32_t) override
Table(const System::SharedPtr<Aspose::Words::DocumentBase>&)Инициализирует новый экземпляр класса Table.
ToString(Aspose::Words::SaveFormat)Экспортирует содержимое узла в строку в указанном формате.
ToString(const System::SharedPtr<Aspose::Words::Saving::SaveOptions>&)Экспортирует содержимое узла в строку, используя указанные параметры сохранения.
static Type()

Примечания

Table is a block-level node and can be a child of classes derived from Story or InlineStory.

Table can contain one or more Row nodes.

Минимальная корректная таблица должна содержать как минимум одну Row.

Примеры

Показывает, как построить отформатированную таблицу 2x2.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

System::SharedPtr<Aspose::Words::Tables::Table> table = builder->StartTable();
builder->InsertCell();
builder->get_CellFormat()->set_VerticalAlignment(Aspose::Words::Tables::CellVerticalAlignment::Center);
builder->Write(u"Row 1, cell 1.");
builder->InsertCell();
builder->Write(u"Row 1, cell 2.");
builder->EndRow();

// Во время построения таблицы документный построитель применит текущие значения свойств RowFormat/CellFormat.
// к текущей строке/ячейке, в которой находится курсор, и к любым новым строкам/ячейкам при их создании.
ASSERT_EQ(Aspose::Words::Tables::CellVerticalAlignment::Center, table->get_Rows()->idx_get(0)->get_Cells()->idx_get(0)->get_CellFormat()->get_VerticalAlignment());
ASSERT_EQ(Aspose::Words::Tables::CellVerticalAlignment::Center, table->get_Rows()->idx_get(0)->get_Cells()->idx_get(1)->get_CellFormat()->get_VerticalAlignment());

builder->InsertCell();
builder->get_RowFormat()->set_Height(100);
builder->get_RowFormat()->set_HeightRule(Aspose::Words::HeightRule::Exactly);
builder->get_CellFormat()->set_Orientation(Aspose::Words::TextOrientation::Upward);
builder->Write(u"Row 2, cell 1.");
builder->InsertCell();
builder->get_CellFormat()->set_Orientation(Aspose::Words::TextOrientation::Downward);
builder->Write(u"Row 2, cell 2.");
builder->EndRow();
builder->EndTable();

// Ранее добавленные строки и ячейки не подвергаются ретроспективному изменению из‑за изменений форматирования построителя.
ASPOSE_ASSERT_EQ(0, table->get_Rows()->idx_get(0)->get_RowFormat()->get_Height());
ASSERT_EQ(Aspose::Words::HeightRule::Auto, table->get_Rows()->idx_get(0)->get_RowFormat()->get_HeightRule());
ASPOSE_ASSERT_EQ(100, table->get_Rows()->idx_get(1)->get_RowFormat()->get_Height());
ASSERT_EQ(Aspose::Words::HeightRule::Exactly, table->get_Rows()->idx_get(1)->get_RowFormat()->get_HeightRule());
ASSERT_EQ(Aspose::Words::TextOrientation::Upward, table->get_Rows()->idx_get(1)->get_Cells()->idx_get(0)->get_CellFormat()->get_Orientation());
ASSERT_EQ(Aspose::Words::TextOrientation::Downward, table->get_Rows()->idx_get(1)->get_Cells()->idx_get(1)->get_CellFormat()->get_Orientation());

doc->Save(get_ArtifactsDir() + u"DocumentBuilder.BuildTable.docx");

Показывает, как создать таблицу.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto table = System::MakeObject<Aspose::Words::Tables::Table>(doc);
doc->get_FirstSection()->get_Body()->AppendChild<System::SharedPtr<Aspose::Words::Tables::Table>>(table);

// Таблицы содержат строки, которые содержат ячейки, которые могут иметь абзацы
// с типичными элементами, такими как фрагменты, фигуры и даже другие таблицы.
// Вызов метода "EnsureMinimum" у таблицы гарантирует, что
// у таблицы будет как минимум одна строка, ячейка и абзац.
auto firstRow = System::MakeObject<Aspose::Words::Tables::Row>(doc);
table->AppendChild<System::SharedPtr<Aspose::Words::Tables::Row>>(firstRow);

auto firstCell = System::MakeObject<Aspose::Words::Tables::Cell>(doc);
firstRow->AppendChild<System::SharedPtr<Aspose::Words::Tables::Cell>>(firstCell);

auto paragraph = System::MakeObject<Aspose::Words::Paragraph>(doc);
firstCell->AppendChild<System::SharedPtr<Aspose::Words::Paragraph>>(paragraph);

// Добавьте текст в первую ячейку первой строки таблицы.
auto run = System::MakeObject<Aspose::Words::Run>(doc, u"Hello world!");
paragraph->AppendChild<System::SharedPtr<Aspose::Words::Run>>(run);

doc->Save(get_ArtifactsDir() + u"Table.CreateTable.docx");

Показывает, как пройтись по всем таблицам в документе и вывести содержимое каждой ячейки.

auto doc = System::MakeObject<Aspose::Words::Document>(get_MyDir() + u"Tables.docx");
System::SharedPtr<Aspose::Words::Tables::TableCollection> tables = doc->get_FirstSection()->get_Body()->get_Tables();

ASSERT_EQ(2, tables->ToArray()->get_Length());

for (int32_t i = 0; i < tables->get_Count(); i++)
{
    std::cout << System::String::Format(u"Start of Table {0}", i) << std::endl;

    System::SharedPtr<Aspose::Words::Tables::RowCollection> rows = tables->idx_get(i)->get_Rows();

    // Мы можем использовать метод "ToArray" для коллекции строк, чтобы клонировать её в массив.
    ASPOSE_ASSERT_EQ(rows, rows->ToArray());
    ASPOSE_ASSERT_NS(rows, rows->ToArray());

    for (int32_t j = 0; j < rows->get_Count(); j++)
    {
        std::cout << System::String::Format(u"\tStart of Row {0}", j) << std::endl;

        System::SharedPtr<Aspose::Words::Tables::CellCollection> cells = rows->idx_get(j)->get_Cells();

        // Мы можем использовать метод "ToArray" для коллекции ячеек, чтобы клонировать её в массив.
        ASPOSE_ASSERT_EQ(cells, cells->ToArray());
        ASPOSE_ASSERT_NS(cells, cells->ToArray());

        for (int32_t k = 0; k < cells->get_Count(); k++)
        {
            System::String cellText = cells->idx_get(k)->ToString(Aspose::Words::SaveFormat::Text).Trim();
            std::cout << System::String::Format(u"\t\tContents of Cell:{0} = \"{1}\"", k, cellText) << std::endl;
        }

        std::cout << System::String::Format(u"\tEnd of Row {0}", j) << std::endl;
    }

    std::cout << System::String::Format(u"End of Table {0}\n", i) << std::endl;
}

См. также