Table

Table class

Представляет таблицу в документе Word.

Чтобы узнать больше, посетитеРабота с таблицами документальная статья.

public class Table : CompositeNode

Конструкторы

ИмяОписание
Table(DocumentBase)Инициализирует новый экземплярTable класс.

Характеристики

ИмяОписание
AbsoluteHorizontalDistance { get; set; }Возвращает или задает абсолютное горизонтальное положение плавающей таблицы, указанное свойствами таблицы, в пунктах. Значение по умолчанию — 0.
AbsoluteVerticalDistance { get; set; }Возвращает или задает абсолютное вертикальное положение плавающей таблицы, указанное свойствами таблицы, в пунктах. Значение по умолчанию — 0.
Alignment { get; set; }Указывает, как встроенная таблица выравнивается в документе.
AllowAutoFit { get; set; }Позволяет Microsoft Word и Aspose.Words автоматически изменять размер ячеек в таблице в соответствии с их содержимым.
AllowCellSpacing { get; set; }Возвращает или задает параметр «Разрешить интервал между ячейками».
AllowOverlap { get; }Определяет, должна ли плавающая таблица позволять другим плавающим объектам в документе перекрывать ее экстенты при отображении. Значение по умолчанию:истинный .
Bidi { get; set; }Возвращает или задает, является ли эта таблица таблицей с направлением справа налево.
BottomPadding { get; set; }Возвращает или задает размер пространства (в пунктах), добавляемого под содержимым ячеек.
CellSpacing { get; set; }Возвращает или задает величину пространства (в пунктах) между ячейками.
Count { get; }Получает количество непосредственных потомков этого узла.
CustomNodeId { get; set; }Указывает пользовательский идентификатор узла.
Description { get; set; }Получает или задает описание этой таблицы. Предоставляет альтернативное текстовое представление информации, содержащейся в таблице.
DistanceBottom { get; set; }Возвращает или задает расстояние между нижней частью таблицы и окружающим текстом в пунктах.
DistanceLeft { get; set; }Возвращает или задает расстояние между левым краем таблицы и окружающим текстом в пунктах.
DistanceRight { get; set; }Возвращает или задает расстояние между правым краем таблицы и окружающим текстом в пунктах.
DistanceTop { get; set; }Возвращает или задает расстояние между верхом таблицы и окружающим текстом в пунктах.
virtual Document { get; }Получает документ, к которому принадлежит этот узел.
FirstChild { get; }Получает первый дочерний элемент узла.
FirstRow { get; }Возвращает первыйRow узел в таблице.
HasChildNodes { get; }Возвратистинный если у этого узла есть дочерние узлы.
HorizontalAnchor { get; set; }Получает базовый объект, на основе которого следует рассчитать горизонтальное положение плавающей таблицы. Значение по умолчанию:Column .
override IsComposite { get; }Возвратистинный так как этот узел может иметь дочерние узлы.
LastChild { get; }Получает последний дочерний элемент узла.
LastRow { get; }Возвращает последнийRow узел в таблице.
LeftIndent { get; set; }Возвращает или задает значение, представляющее левый отступ таблицы.
LeftPadding { get; set; }Возвращает или задает размер пространства (в пунктах), добавляемого слева от содержимого ячеек.
NextSibling { get; }Получает узел, следующий сразу за данным узлом.
override NodeType { get; }ВозвратTable .
ParentNode { get; }Получает непосредственного родителя этого узла.
PreferredWidth { get; set; }Получает или задает предпочтительную ширину таблицы.
PreviousSibling { get; }Получает узел, непосредственно предшествующий данному узлу.
Range { get; }ВозвращаетRangeобъект, представляющий часть документа, содержащуюся в этом узле.
RelativeHorizontalAlignment { get; set; }Возвращает или задает относительное горизонтальное выравнивание плавающей таблицы.
RelativeVerticalAlignment { get; set; }Возвращает или задает относительное вертикальное выравнивание плавающей таблицы.
RightPadding { get; set; }Возвращает или задает размер пространства (в пунктах), добавляемого справа от содержимого ячеек.
Rows { get; }Предоставляет типизированный доступ к строкам таблицы.
Style { get; set; }Возвращает или задает стиль таблицы, примененный к этой таблице.
StyleIdentifier { get; set; }Возвращает или задает независимый от локали идентификатор стиля таблицы, примененный к этой таблице.
StyleName { get; set; }Возвращает или задает имя стиля таблицы, примененного к этой таблице.
StyleOptions { get; set; }Возвращает или задает битовые флаги, которые определяют, как стиль таблицы применяется к этой таблице.
TextWrapping { get; set; }Получает или устанавливаетTextWrapping для таблицы.
Title { get; set; }Получает или задает заголовок этой таблицы. Предоставляет альтернативное текстовое представление информации, содержащейся в таблице.
TopPadding { get; set; }Возвращает или задает размер пространства (в пунктах), добавляемого над содержимым ячеек.
VerticalAnchor { get; set; }Получает базовый объект, на основе которого следует рассчитать вертикальное положение плавающей таблицы. Значение по умолчанию:Margin .

Методы

ИмяОписание
override Accept(DocumentVisitor)Принимает посетителя.
override AcceptEnd(DocumentVisitor)Принимает посетителя для посещения конца таблицы.
override AcceptStart(DocumentVisitor)Принимает посетителя для посещения начала таблицы.
AppendChild<T>(T)Добавляет указанный узел в конец списка дочерних узлов для данного узла.
AutoFit(AutoFitBehavior)Изменяет размер таблицы и ячеек в соответствии с указанным поведением автоподбора.
ClearBorders()Удаляет все границы таблиц и ячеек в этой таблице.
ClearShading()Удаляет все затенения на столе.
Clone(bool)Создает дубликат узла.
ConvertToHorizontallyMergedCells()Преобразует ячейки, объединенные по горизонтали по ширине, в ячейки, объединенные поHorizontalMerge .
CreateNavigator()Создает навигатор, который можно использовать для перемещения и чтения узлов.
EnsureMinimum()Если в таблице нет строк, создает и добавляет однуRow .
GetAncestor(NodeType)Получает первого предка указанногоNodeType .
GetAncestor(Type)Получает первого предка указанного типа объекта.
GetChild(NodeType, int, bool)Возвращает N-й дочерний узел, соответствующий указанному типу.
GetChildNodes(NodeType, bool)Возвращает живую коллекцию дочерних узлов, соответствующих указанному типу.
GetEnumerator()Обеспечивает поддержку для каждой итерации стиля по дочерним узлам этого узла.
override GetText()Получает текст этого узла и всех его дочерних узлов.
IndexOf(Node)Возвращает индекс указанного дочернего узла в массиве дочерних узлов.
InsertAfter<T>(T, Node)Вставляет указанный узел сразу после указанного ссылочного узла.
InsertBefore<T>(T, Node)Вставляет указанный узел непосредственно перед указанным ссылочным узлом.
NextPreOrder(Node)Получает следующий узел в соответствии с алгоритмом обхода дерева предварительного порядка.
PrependChild<T>(T)Добавляет указанный узел в начало списка дочерних узлов для данного узла.
PreviousPreOrder(Node)Получает предыдущий узел в соответствии с алгоритмом обхода дерева предварительного порядка.
Remove()Удаляет себя из родителя.
RemoveAllChildren()Удаляет все дочерние узлы текущего узла.
RemoveChild<T>(T)Удаляет указанный дочерний узел.
RemoveSmartTags()Удаляет всеSmartTag узлы-потомки текущего узла.
SelectNodes(string)Выбирает список узлов, соответствующих выражению XPath.
SelectSingleNode(string)Выбирает первыйNode что соответствует выражению XPath.
SetBorder(BorderTypeLineStyle, double, Color, bool)Устанавливает указанную границу таблицы на указанный стиль линии, ширину и цвет.
SetBorders(LineStyle, double, Color)Устанавливает для всех границ таблицы указанный стиль линии, ширину и цвет.
SetShading(TextureIndex, Color, Color)Устанавливает затенение для указанных значений по всей таблице.
ToString(SaveFormat)Экспортирует содержимое узла в строку указанного формата.
ToString(SaveOptions)Экспортирует содержимое узла в строку, используя указанные параметры сохранения.

Примечания

Table является узлом блочного уровня и может быть потомком классов, производных отStory или InlineStory.

Table может содержать один или несколькоRow узлы.

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

Примеры

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

Document doc = new Document();
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Таблицы содержат строки, которые содержат ячейки, которые могут иметь абзацы
// с типичными элементами, такими как ряды, фигуры и даже другие таблицы.
// Вызов метода "EnsureMinimum" для таблицы гарантирует, что
// таблица имеет как минимум одну строку, ячейку и абзац.
Row firstRow = new Row(doc);
table.AppendChild(firstRow);

Cell firstCell = new Cell(doc);
firstRow.AppendChild(firstCell);

Paragraph paragraph = new Paragraph(doc);
firstCell.AppendChild(paragraph);

// Добавляем текст в первую ячейку первой строки таблицы.
Run run = new Run(doc, "Hello world!");
paragraph.AppendChild(run);

doc.Save(ArtifactsDir + "Table.CreateTable.docx");

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

Document doc = new Document(MyDir + "Tables.docx");
TableCollection tables = doc.FirstSection.Body.Tables;

Assert.AreEqual(2, tables.ToArray().Length);

for (int i = 0; i < tables.Count; i++)
{
    Console.WriteLine($"Start of Table {i}");

    RowCollection rows = tables[i].Rows;

    // Мы можем использовать метод «ToArray» для коллекции строк, чтобы клонировать ее в массив.
    Assert.AreEqual(rows, rows.ToArray());
    Assert.AreNotSame(rows, rows.ToArray());

    for (int j = 0; j < rows.Count; j++)
    {
        Console.WriteLine($"\tStart of Row {j}");

        CellCollection cells = rows[j].Cells;

        // Мы можем использовать метод «ToArray» для коллекции ячеек, чтобы клонировать ее в массив.
        Assert.AreEqual(cells, cells.ToArray());
        Assert.AreNotSame(cells, cells.ToArray());

        for (int k = 0; k < cells.Count; k++)
        {
            string cellText = cells[k].ToString(SaveFormat.Text).Trim();
            Console.WriteLine($"\t\tContents of Cell:{k} = \"{cellText}\"");
        }

        Console.WriteLine($"\tEnd of Row {j}");
    }

    Console.WriteLine($"End of Table {i}\n");
}

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

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.StartTable();
builder.InsertCell();
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
builder.Write("Row 1, cell 1.");
builder.InsertCell();
builder.Write("Row 1, cell 2.");
builder.EndRow();

// При построении таблицы конструктор документов применит текущие значения свойств RowFormat/CellFormat
// к текущей строке/ячейке, в которой находится курсор, и ко всем новым строкам/ячейкам по мере их создания.
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[0].CellFormat.VerticalAlignment);
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[1].CellFormat.VerticalAlignment);

builder.InsertCell();
builder.RowFormat.Height = 100;
builder.RowFormat.HeightRule = HeightRule.Exactly;
builder.CellFormat.Orientation = TextOrientation.Upward;
builder.Write("Row 2, cell 1.");
builder.InsertCell();
builder.CellFormat.Orientation = TextOrientation.Downward;
builder.Write("Row 2, cell 2.");
builder.EndRow();
builder.EndTable();

// Изменения в форматировании конструктора не влияют на ранее добавленные строки и ячейки.
Assert.AreEqual(0, table.Rows[0].RowFormat.Height);
Assert.AreEqual(HeightRule.Auto, table.Rows[0].RowFormat.HeightRule);
Assert.AreEqual(100, table.Rows[1].RowFormat.Height);
Assert.AreEqual(HeightRule.Exactly, table.Rows[1].RowFormat.HeightRule);
Assert.AreEqual(TextOrientation.Upward, table.Rows[1].Cells[0].CellFormat.Orientation);
Assert.AreEqual(TextOrientation.Downward, table.Rows[1].Cells[1].CellFormat.Orientation);

doc.Save(ArtifactsDir + "DocumentBuilder.BuildTable.docx");

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

public void CreateNestedTable()
{
    Document doc = new Document();

    // Создаем внешнюю таблицу с тремя строками и четырьмя столбцами, а затем добавляем ее в документ.
    Table outerTable = CreateTable(doc, 3, 4, "Outer Table");
    doc.FirstSection.Body.AppendChild(outerTable);

    // Создаем еще одну таблицу с двумя строками и двумя столбцами, а затем вставляем ее в первую ячейку первой таблицы.
    Table innerTable = CreateTable(doc, 2, 2, "Inner Table");
    outerTable.FirstRow.FirstCell.AppendChild(innerTable);

    doc.Save(ArtifactsDir + "Table.CreateNestedTable.docx");
}

/// <summary>
/// Создает новую таблицу в документе с заданными размерами и текстом в каждой ячейке.
/// </summary>
private static Table CreateTable(Document doc, int rowCount, int cellCount, string cellText)
{
    Table table = new Table(doc);

    for (int rowId = 1; rowId <= rowCount; rowId++)
    {
        Row row = new Row(doc);
        table.AppendChild(row);

        for (int cellId = 1; cellId <= cellCount; cellId++)
        {
            Cell cell = new Cell(doc);
            cell.AppendChild(new Paragraph(doc));
            cell.FirstParagraph.AppendChild(new Run(doc, cellText));

            row.AppendChild(cell);
        }
    }

    // Вы можете использовать свойства «Заголовок» и «Описание», чтобы добавить заголовок и описание к вашей таблице соответственно.
    // Таблица должна иметь хотя бы одну строку, прежде чем мы сможем использовать эти свойства.
    // Эти свойства имеют значение для документов .docx, соответствующих стандарту ISO/IEC 29500 (см. класс OoxmlCompliance).
    // Если мы сохраняем документ в форматах, предшествующих ISO/IEC 29500, Microsoft Word игнорирует эти свойства.
    table.Title = "Aspose table title";
    table.Description = "Aspose table description";

    return table;
}

Смотрите также