Cell

Cell class

Representa una celda de tabla.

public class Cell : CompositeNode

Constructores

Nombre Descripción
Cell(DocumentBase) Inicializa una nueva instancia del Célula clase.

Propiedades

Nombre Descripción
CellFormat { get; } Proporciona acceso a las propiedades de formato de la celda.
ChildNodes { get; } Obtiene todos los nodos secundarios inmediatos de este nodo.
Count { get; } Obtiene el número de hijos inmediatos de este nodo.
CustomNodeId { get; set; } Especifica el identificador de nodo personalizado.
virtual Document { get; } Obtiene el documento al que pertenece este nodo.
FirstChild { get; } Obtiene el primer hijo del nodo.
FirstParagraph { get; } Obtiene el primer párrafo entre los hijos inmediatos.
HasChildNodes { get; } Devuelve verdadero si este nodo tiene nodos secundarios.
override IsComposite { get; } Devuelve verdadero ya que este nodo puede tener nodos secundarios.
IsFirstCell { get; } Verdadero si esta es la primera celda dentro de una fila; falso en caso contrario.
IsLastCell { get; } Verdadero si esta es la última celda dentro de una fila; falso en caso contrario.
LastChild { get; } Obtiene el último hijo del nodo.
LastParagraph { get; } Obtiene el último párrafo entre los hijos inmediatos.
NextSibling { get; } Obtiene el nodo que sigue inmediatamente a este nodo.
override NodeType { get; } Devoluciones NodeType.Cell .
Paragraphs { get; } Obtiene una colección de párrafos que son hijos inmediatos de la celda.
ParentNode { get; } Obtiene el padre inmediato de este nodo.
ParentRow { get; } Devuelve la fila principal de la celda.
PreviousSibling { get; } Obtiene el nodo inmediatamente anterior a este nodo.
Range { get; } Devuelve un Rango objeto que representa la parte de un documento que está contenido en este nodo.
Tables { get; } Obtiene una colección de tablas que son elementos secundarios inmediatos de la celda.

Métodos

Nombre Descripción
override Accept(DocumentVisitor) Acepta un visitante.
AppendChild(Node) Agrega el nodo especificado al final de la lista de nodos secundarios para este nodo.
Clone(bool) Crea un duplicado del nodo.
CreateNavigator() Reservado para uso del sistema. IXPathNavigable.
EnsureMinimum() Si el último elemento secundario no es un párrafo, crea y agrega un párrafo vacío.
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 enésimo nodo secundario 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 la iteración de cada 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(Node, Node) Inserta el nodo especificado inmediatamente después del nodo de referencia especificado.
InsertBefore(Node, Node) Inserta el nodo especificado inmediatamente antes del nodo de referencia especificado.
NextPreOrder(Node) Obtiene el siguiente nodo de acuerdo con el algoritmo de recorrido del árbol de pedido previo.
PrependChild(Node) Agrega el nodo especificado al principio de la lista de nodos secundarios para este nodo.
PreviousPreOrder(Node) Obtiene el nodo anterior de acuerdo con el algoritmo de recorrido del árbol de pedido previo.
Remove() Se elimina a sí mismo del padre.
RemoveAllChildren() Elimina todos los nodos secundarios del nodo actual.
RemoveChild(Node) 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 primer nodo que coincide con la expresión XPath.
ToString(SaveFormat) Exporta el contenido del nodo a una cadena en el formato especificado.
ToString(SaveOptions) Exporta el contenido del nodo a una cadena utilizando las opciones de guardado especificadas.

Observaciones

Célula solo puede ser hijo de Fila.

Célula puede contener nodos a nivel de bloque Párrafo y Mesa.

Una celda válida mínima debe tener al menos una Párrafo.

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 asegurará que
// la tabla tiene al menos una fila, celda y 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 llamada en 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 recorrer 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 crear una tabla anidada sin utilizar un generador de documentos.

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

    // Cree la tabla exterior 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 usar 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 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