Cómo añadir una tabla a un DOCX

Una tabla es una cuadrícula de celdas dispuestas en filas y columnas. Sirve para organizar y presentar información en un formato estructurado. Cada intersección de una fila y una columna es una celda, que puede contener texto, números u otros tipos de datos. Las tablas se suelen utilizar para organizar datos de forma ordenada, crear calendarios o dar formato a la información de manera visualmente organizada.

Biblioteca NuGet C# para

Instalar con NuGet

Install-Package IronWord

Añadir tabla Ejemplo

Una tabla es un componente importante de un documento Word. En primer lugar, instancie la clase Table indicando el número de filas y columnas. A partir de ahí, se puede personalizar el estilo de la tabla, como el color de fondo, el sombreado, el borde, las rayas de cebra y la anchura. En segundo lugar, se puede acceder a cada celda de la tabla de una forma muy intuitiva especificando la fila y la columna de la tabla en [fila, columna] formato. En cada celda se puede añadir texto, imágenes, formas, párrafos o incluso tablas enteras. Por último, esta tabla puede añadirse al documento Word.

Consejo
Todas las posiciones de índice de filas y columnas siguen una indexación basada en cero.

:path=/static-assets/word/content-code-examples/how-to/add-table-add-table.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;

WordDocument doc = new WordDocument();

//  Crear tabla
Table table = new Table(5, 3);

//  Configurar el estilo del borde
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = new IronColor(IronSoftware.Drawing.Color.Black);
borderStyle.BorderValue = BorderValues.Thick;
borderStyle.BorderSize = 5;

//  Configurar el borde de la tabla
TableBorders tableBorders = new TableBorders()
{
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};

//  Aplicar estilismo
table.Zebra = new ZebraColor("FFFFFF", "dddddd");
table.Borders = tableBorders;

//  Rellenar tabla
table[0, 0] = new TableCell(new Text("Number"));
table[0, 1] = new TableCell(new Text("First Name"));
table[0, 2] = new TableCell(new Text("Last Name"));
for (int i = 1; i < table.Rows.Count; i++)
{
    table[i, 0].AddChild(new Text($"{i}"));
    table[i, 1].AddChild(new Text($"---"));
    table[i, 2].AddChild(new Text($"---"));
}

//  Añadir tabla
doc.AddTable(table);

doc.Save("document.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums

Private doc As New WordDocument()

'  Crear tabla
Private table As New Table(5, 3)

'  Configurar el estilo del borde
Private borderStyle As New BorderStyle()
borderStyle.BorderColor = New IronColor(IronSoftware.Drawing.Color.Black)
borderStyle.BorderValue = BorderValues.Thick
borderStyle.BorderSize = 5

'  Configurar el borde de la tabla
Dim tableBorders As New TableBorders() With {
	.TopBorder = borderStyle,
	.RightBorder = borderStyle,
	.BottomBorder = borderStyle,
	.LeftBorder = borderStyle
}

'  Aplicar estilismo
table.Zebra = New ZebraColor("FFFFFF", "dddddd")
table.Borders = tableBorders

'  Rellenar tabla
table(0, 0) = New TableCell(New Text("Number"))
table(0, 1) = New TableCell(New Text("First Name"))
table(0, 2) = New TableCell(New Text("Last Name"))
For i As Integer = 1 To table.Rows.Count - 1
	table(i, 0).AddChild(New Text($"{i}"))
	table(i, 1).AddChild(New Text($"---"))
	table(i, 2).AddChild(New Text($"---"))
Next i

'  Añadir tabla
doc.AddTable(table)

doc.Save("document.docx")
VB   C#
Añadir tabla

El método AddContent de la clase TableCell acepta un objeto ContentElement, que incluye desde párrafos, imágenes y formas hasta la propia tabla. En este caso, puede tener tablas anidadas, lo que proporciona una ilustración muy útil para determinados casos de uso.

Estilos disponibles

Fronteras

Explora todas las opciones disponibles para los valores de borde que se pueden establecer utilizando el enum BorderValues:

Valores fronterizos