Table
Contenido
[
Ocultar
]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
| Nombre | Descripción |
|---|---|
| Table(DocumentBase) | Inicializa una nueva instancia delTable clase. |
Propiedades
| Nombre | Descripció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
| Nombre | Descripció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(BorderType, LineStyle, 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
- class CompositeNode
- espacio de nombres Aspose.Words.Tables
- asamblea Aspose.Words