Table

Table class

Representa una tabla en un documento de Word.

Para obtener más información, visite elTrabajar con tablas Artículo de documentación.

public class Table : CompositeNode

Constructores

NombreDescripción
Table(DocumentBase)Inicializa una nueva instancia delTable clase.

Propiedades

NombreDescripción
AbsoluteHorizontalDistance { get; set; }Obtiene o establece la posición absoluta de la tabla flotante horizontal especificada por las propiedades de la tabla, en puntos. El valor predeterminado es 0.
AbsoluteVerticalDistance { get; set; }Obtiene o establece la posición de tabla flotante vertical absoluta especificada por las propiedades de la tabla, en puntos. El valor predeterminado es 0.
Alignment { get; set; }Especifica cómo se alinea una tabla en línea en el documento.
AllowAutoFit { get; set; }Permite que Microsoft Word y Aspose.Words cambien automáticamente el tamaño de las celdas de una tabla para que se ajusten a su contenido.
AllowCellSpacing { get; set; }Obtiene o establece la opción “Permitir espaciado entre celdas”.
AllowOverlap { get; }Obtiene si una tabla flotante debe permitir que otros objetos flotantes en el documento se superpongan a sus extensiones cuando se muestran. El valor predeterminado esverdadero .
Bidi { get; set; }Obtiene o establece si se trata de una tabla de derecha a izquierda.
BottomPadding { get; set; }Obtiene o establece la cantidad de espacio (en puntos) que se agregará debajo del contenido de las celdas.
CellSpacing { get; set; }Obtiene o establece la cantidad de espacio (en puntos) entre las celdas.
Count { get; }Obtiene el número de hijos inmediatos de este nodo.
CustomNodeId { get; set; }Especifica un identificador de nodo personalizado.
Description { get; set; }Obtiene o establece la descripción de esta tabla. Proporciona una representación de texto alternativa de la información contenida en la tabla.
DistanceBottom { get; set; }Obtiene o establece la distancia entre la parte inferior de la tabla y el texto circundante, en puntos.
DistanceLeft { get; set; }Obtiene o establece la distancia entre la izquierda de la tabla y el texto circundante, en puntos.
DistanceRight { get; set; }Obtiene o establece la distancia entre la tabla derecha y el texto circundante, en puntos.
DistanceTop { get; set; }Obtiene o establece la distancia entre la parte superior de la mesa y el texto circundante, en puntos.
virtual Document { get; }Obtiene el documento al que pertenece este nodo.
FirstChild { get; }Obtiene el primer hijo del nodo.
FirstRow { get; }Devuelve el primerRow nodo en la tabla.
HasChildNodes { get; }Devuelveverdadero si este nodo tiene nodos secundarios.
HorizontalAnchor { get; set; }Obtiene el objeto base desde el cual se debe calcular el posicionamiento horizontal de la tabla flotante. El valor predeterminado esColumn .
override IsComposite { get; }Devuelveverdadero ya que este nodo puede tener nodos secundarios.
LastChild { get; }Obtiene el último hijo del nodo.
LastRow { get; }Devuelve el últimoRow nodo en la tabla.
LeftIndent { get; set; }Obtiene o establece el valor que representa la sangría izquierda de la tabla.
LeftPadding { get; set; }Obtiene o establece la cantidad de espacio (en puntos) que se agregará a la izquierda del contenido de las celdas.
NextSibling { get; }Obtiene el nodo inmediatamente siguiente a este nodo.
override NodeType { get; }DevuelveTable .
ParentNode { get; }Obtiene el padre inmediato de este nodo.
PreferredWidth { get; set; }Obtiene o establece el ancho preferido de la tabla.
PreviousSibling { get; }Obtiene el nodo inmediatamente anterior a este nodo.
Range { get; }Devuelve unRangeobjeto que representa la porción de un documento que está contenida en este nodo.
RelativeHorizontalAlignment { get; set; }Obtiene o establece la alineación horizontal relativa de la tabla flotante.
RelativeVerticalAlignment { get; set; }Obtiene o establece la alineación vertical relativa de la tabla flotante.
RightPadding { get; set; }Obtiene o establece la cantidad de espacio (en puntos) que se agregará a la derecha del contenido de las celdas.
Rows { get; }Proporciona acceso tipificado a las filas de la tabla.
Style { get; set; }Obtiene o establece el estilo de tabla aplicado a esta tabla.
StyleIdentifier { get; set; }Obtiene o establece el identificador de estilo independiente de la configuración regional del estilo de tabla aplicado a esta tabla.
StyleName { get; set; }Obtiene o establece el nombre del estilo de tabla aplicado a esta tabla.
StyleOptions { get; set; }Obtiene o establece indicadores de bits que especifican cómo se aplica un estilo de tabla a esta tabla.
TextWrapping { get; set; }Obtiene o estableceTextWrapping para la tabla.
Title { get; set; }Obtiene o establece el título de esta tabla. Proporciona una representación de texto alternativa de la información contenida en la tabla.
TopPadding { get; set; }Obtiene o establece la cantidad de espacio (en puntos) que se agregará sobre el contenido de las celdas.
VerticalAnchor { get; set; }Obtiene el objeto base desde el cual se debe calcular el posicionamiento vertical de la tabla flotante. El valor predeterminado esMargin .

Métodos

NombreDescripción
override Accept(DocumentVisitor)Acepta un visitante.
override AcceptEnd(DocumentVisitor)Acepta un visitante por visitar el final de la tabla.
override AcceptStart(DocumentVisitor)Acepta un visitante por visitar el inicio de la tabla.
AppendChild<T>(T)Agrega el nodo especificado al final de la lista de nodos secundarios para este nodo.
AutoFit(AutoFitBehavior)Redimensiona la tabla y las celdas según el comportamiento de ajuste automático especificado.
ClearBorders()Elimina todos los bordes de tablas y celdas de esta tabla.
ClearShading()Elimina todo el sombreado de la tabla.
Clone(bool)Crea un duplicado del nodo.
ConvertToHorizontallyMergedCells()Convierte celdas fusionadas horizontalmente por ancho en celdas fusionadas porHorizontalMerge .
CreateNavigator()Crea un navegador que puede utilizarse para recorrer y leer nodos.
EnsureMinimum()Si la tabla no tiene filas, crea y agrega unaRow .
GetAncestor(NodeType)Obtiene el primer ancestro del especificadoNodeType .
GetAncestor(Type)Obtiene el primer ancestro del tipo de objeto especificado.
GetChild(NodeType, int, bool)Devuelve un nodo secundario N que coincide con el tipo especificado.
GetChildNodes(NodeType, bool)Devuelve una colección activa de nodos secundarios que coinciden con el tipo especificado.
GetEnumerator()Proporciona soporte para cada iteración de estilo sobre los nodos secundarios de este nodo.
override GetText()Obtiene el texto de este nodo y de todos sus hijos.
IndexOf(Node)Devuelve el índice del nodo secundario especificado en la matriz de nodos secundarios.
InsertAfter<T>(T, Node)Inserta el nodo especificado inmediatamente después del nodo de referencia especificado.
InsertBefore<T>(T, Node)Inserta el nodo especificado inmediatamente antes del nodo de referencia especificado.
NextPreOrder(Node)Obtiene el siguiente nodo según el algoritmo de recorrido del árbol de preorden.
PrependChild<T>(T)Agrega el nodo especificado al comienzo de la lista de nodos secundarios para este nodo.
PreviousPreOrder(Node)Obtiene el nodo anterior según el algoritmo de recorrido del árbol de preorden.
Remove()Se elimina a sí mismo del padre.
RemoveAllChildren()Elimina todos los nodos secundarios del nodo actual.
RemoveChild<T>(T)Elimina el nodo secundario especificado.
RemoveSmartTags()Elimina todoSmartTag nodos descendientes del nodo actual.
SelectNodes(string)Selecciona una lista de nodos que coinciden con la expresión XPath.
SelectSingleNode(string)Selecciona el primerNode que coincide con la expresión XPath.
SetBorder(BorderTypeLineStyle, double, Color, bool)Establece el borde de la tabla especificada con el estilo de línea, ancho y color especificados.
SetBorders(LineStyle, double, Color)Establece todos los bordes de la tabla con el estilo de línea, ancho y color especificados.
SetShading(TextureIndex, Color, Color)Establece el sombreado en los valores especificados en toda la tabla.
ToString(SaveFormat)Exporta el contenido del nodo en una cadena en el formato especificado.
ToString(SaveOptions)Exporta el contenido del nodo en una cadena utilizando las opciones de guardado especificadas.

Observaciones

Table es un nodo a nivel de bloque y puede ser un hijo de clases derivadas deStory o InlineStory.

Table puede contener uno o másRow nodos.

Una tabla mínima válida debe tener al menos unaRow.

Ejemplos

Muestra cómo crear una tabla.

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

// Las tablas contienen filas, que contienen celdas, que pueden tener párrafos
// con elementos típicos como carreras, formas e incluso otras tablas.
// Llamar al método "EnsureMinimum" en una tabla garantizará que
//la tabla tiene al menos una fila, una celda y un párrafo.
Row firstRow = new Row(doc);
table.AppendChild(firstRow);

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

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

// Agrega texto a la primera celda de la primera fila de la tabla.
Run run = new Run(doc, "Hello world!");
paragraph.AppendChild(run);

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

Muestra cómo iterar a través de todas las tablas del documento e imprimir el contenido de cada celda.

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;

    // Podemos usar el método "ToArray" en una colección de filas para clonarla en una matriz.
    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;

        // Podemos usar el método "ToArray" en una colección de celdas para clonarla en una matriz.
        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");
}

Muestra cómo construir una tabla formateada de 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();

// Al construir la tabla, el generador de documentos aplicará sus valores de propiedad RowFormat/CellFormat actuales
// a la fila/celda actual en la que se encuentra el cursor y a cualquier fila/celda nueva a medida que las crea.
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();

// Las filas y celdas agregadas previamente no se ven afectadas retroactivamente por los cambios en el formato del generador.
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");

Muestra cómo construir una tabla anidada sin utilizar un generador de documentos.

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

    // Cree la tabla externa con tres filas y cuatro columnas y luego agréguela al documento.
    Table outerTable = CreateTable(doc, 3, 4, "Outer Table");
    doc.FirstSection.Body.AppendChild(outerTable);

    // Cree otra tabla con dos filas y dos columnas y luego insértela en la primera celda de la primera tabla.
    Table innerTable = CreateTable(doc, 2, 2, "Inner Table");
    outerTable.FirstRow.FirstCell.AppendChild(innerTable);

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

/// <summary>
/// Crea una nueva tabla en el documento con las dimensiones y el texto dados en cada celda.
/// </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);
        }
    }

    // Puede utilizar las propiedades "Título" y "Descripción" para agregar un título y una descripción respectivamente a su tabla.
    //La tabla debe tener al menos una fila antes de que podamos usar estas propiedades.
    // Estas propiedades son significativas para los documentos .docx compatibles con ISO/IEC 29500 (consulte la clase OoxmlCompliance).
    // Si guardamos el documento en formatos anteriores a ISO/IEC 29500, Microsoft Word ignora estas propiedades.
    table.Title = "Aspose table title";
    table.Description = "Aspose table description";

    return table;
}

Ver también