Cómo añadir una tabla a DOCX utilizando C# con IronWord
IronWord permite a los desarrolladores añadir mediante programación tablas a documentos de Word en C# creando objetos Table con filas y columnas especificadas, dándoles estilo con bordes y colores, y rellenando las celdas con contenido antes de guardarlas como archivos DOCX.
<Descripción: Diagrama o captura de pantalla que ilustre el concepto de código -->
como-título:2(Inicio Rápido: Crear y Guardar una Tabla con Una Llamada)
Este ejemplo muestra cómo crear una tabla en IronWord. Construye la tabla con dimensiones, aplica estilos, añade contenido, insértala en un documento y guárdala. Puede generar un archivo DOCX con una tabla estilizada en cuestión de minutos.
Empieza a crear PDF con NuGet ahora:
Instalar IronWord con el gestor de paquetes NuGet
Copie y ejecute este fragmento de código.
var table = new IronWord.Models.Table(3,4); var doc = new IronWord.WordDocument(); doc.AddTable(table); doc.SaveAs("QuickTable.docx");Despliegue para probar en su entorno real
Empieza a utilizar IronWord en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Descargar una biblioteca C# para añadir tablas a DOCX
- Rellenar celdas con contenido y ensamblar celdas en filas
- Crear una tabla añadiendo filas a ella
- Inicializar un nuevo documento de Word con la tabla e insertar la tabla
- Exportar el documento de Word final
¿Cómo añado una tabla a mi documento de Word?
Una tabla es un componente fundamental de los documentos de Word. En primer lugar, instancie la clase Table indicando el número de filas y columnas. Configure el estilo de la tabla, incluidos el color de fondo, el sombreado, el borde, las rayas de cebra y el ancho. En segundo lugar, acceder a cada celda mediante la indexación intuitiva [fila, columna]. Añade texto, imágenes, formas, párrafos o incluso tablas a cada celda. Por último, añade la tabla al documento de Word.
Las tablas de IronWord proporcionan una base flexible para organizar datos estructurados en documentos de Word. Ya sea para crear facturas, informes o resúmenes de datos, la clase Table ofrece un control exhaustivo sobre el contenido y la presentación. El sistema de indexación basado en cero simplifica la iteración programática de celdas, mientras que las ricas opciones de estilo garantizan un aspecto profesional.
:path=/static-assets/word/content-code-examples/how-to/add-table-add-table.csusing IronWord;
using IronWord.Models;
using IronWord.Models.Enums;
WordDocument doc = new WordDocument();
// Create table
Table table = new Table(5, 3);
// Configure border style
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = Color.Black;
borderStyle.BorderValue = BorderValues.Thick;
borderStyle.BorderSize = 5;
// Configure table border
TableBorders tableBorders = new TableBorders()
{
TopBorder = borderStyle,
RightBorder = borderStyle,
BottomBorder = borderStyle,
LeftBorder = borderStyle,
};
// Apply styling
table.Zebra = new ZebraColor("FFFFFF", "dddddd");
table.Borders = tableBorders;
// Populate table
table[0, 0] = new TableCell(new TextContent("Number"));
table[0, 1] = new TableCell(new TextContent("First Name"));
table[0, 2] = new TableCell(new TextContent("Last Name"));
for (int i = 1; i < table.Rows.Count; i++)
{
table[i, 0].AddChild(new TextContent($"{i}"));
table[i, 1].AddChild(new TextContent($"---"));
table[i, 2].AddChild(new TextContent($"---"));
}
// Add table
doc.AddTable(table);
doc.Save("document.docx");Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums
Private doc As New WordDocument()
' Create table
Private table As New Table(5, 3)
' Configure border style
Private borderStyle As New BorderStyle()
borderStyle.BorderColor = Color.Black
borderStyle.BorderValue = BorderValues.Thick
borderStyle.BorderSize = 5
' Configure table border
Dim tableBorders As New TableBorders() With {
.TopBorder = borderStyle,
.RightBorder = borderStyle,
.BottomBorder = borderStyle,
.LeftBorder = borderStyle
}
' Apply styling
table.Zebra = New ZebraColor("FFFFFF", "dddddd")
table.Borders = tableBorders
' Populate table
table(0, 0) = New TableCell(New TextContent("Number"))
table(0, 1) = New TableCell(New TextContent("First Name"))
table(0, 2) = New TableCell(New TextContent("Last Name"))
For i As Integer = 1 To table.Rows.Count - 1
table(i, 0).AddChild(New TextContent($"{i}"))
table(i, 1).AddChild(New TextContent($"---"))
table(i, 2).AddChild(New TextContent($"---"))
Next i
' Add table
doc.AddTable(table)
doc.Save("document.docx")
El método AddChild de la clase TableCell acepta un objeto ContentElement, que incluye párrafos, imágenes, formas y tablas. Esto permite anidar tablas para casos de uso complejos.
Cuando se trabaja con celdas de tabla, IronWord ofrece múltiples enfoques para la gestión de contenidos. Instancie una TableCell con contenido inicial utilizando el constructor, o añada contenido de forma incremental utilizando el método AddChild. Esta flexibilidad permite crear estructuras de celdas complejas que combinan distintos tipos de contenido. Por ejemplo, una sola celda puede contener un párrafo de cabecera seguido de una imagen y una tabla anidada para especificaciones detalladas.
He aquí un ejemplo que muestra técnicas avanzadas de población celular:
// Example: Creating cells with mixed content
TableCell complexCell = new TableCell();
// Add a styled paragraph
Paragraph header = new Paragraph();
header.Add(new TextContent("Product Details").Bold().FontSize = 14);
complexCell.AddChild(header);
// Add multiple text elements
complexCell.AddChild(new TextContent("SKU: "));
complexCell.AddChild(new TextContent("PROD-001").Bold());
complexCell.AddChild(new TextContent("\nPrice: $49.99"));
// Cells can also contain lists, images, and more
// This demonstrates the versatility of table cells in IronWord// Example: Creating cells with mixed content
TableCell complexCell = new TableCell();
// Add a styled paragraph
Paragraph header = new Paragraph();
header.Add(new TextContent("Product Details").Bold().FontSize = 14);
complexCell.AddChild(header);
// Add multiple text elements
complexCell.AddChild(new TextContent("SKU: "));
complexCell.AddChild(new TextContent("PROD-001").Bold());
complexCell.AddChild(new TextContent("\nPrice: $49.99"));
// Cells can also contain lists, images, and more
// This demonstrates the versatility of table cells in IronWordIRON VB CONVERTER ERROR developers@ironsoftware.com¿Qué opciones de estilo puedo aplicar a las tablas?
IronWord ofrece amplias funciones de estilización de tablas, lo que permite crear documentos visualmente atractivos y profesionales. Además de los bordes y colores básicos, controla el relleno y la alineación de las celdas, y aplica formato condicional mediante bandas de cebra. El sistema de estilo combina la potencia con un diseño intuitivo, utilizando nombres de propiedades familiares y enumeraciones de valores claras.
¿Qué estilos de borde hay disponibles?
Explore todas las opciones disponibles para los valores de borde utilizando el enum BorderValues:

La enumeración BorderValues ofrece amplias opciones para la estética de las tablas. Desde simples líneas sencillas hasta patrones complejos como ondas y puntos, cada estilo sirve para fines de diseño específicos. Los documentos empresariales se benefician de los bordes dobles o triples profesionales, mientras que los documentos creativos utilizan patrones Wave o DashDot. La propiedad BorderSize funciona con BorderValue para proporcionar un control preciso sobre el grosor de la línea, medido en octavos de punto.
He aquí un ejemplo práctico que muestra diferentes configuraciones de bordes:
// Example: Applying different borders to table sections
Table styledTable = new Table(4, 4);
// Create distinct border styles for header and body
BorderStyle headerBorder = new BorderStyle
{
BorderColor = Color.Navy,
BorderValue = BorderValues.Double,
BorderSize = 8
};
BorderStyle bodyBorder = new BorderStyle
{
BorderColor = Color.Gray,
BorderValue = BorderValues.Dotted,
BorderSize = 3
};
// Apply different borders to different parts of the table
// This creates visual hierarchy and improves readability
styledTable.Borders = new TableBorders
{
TopBorder = headerBorder,
BottomBorder = headerBorder,
LeftBorder = bodyBorder,
RightBorder = bodyBorder,
InsideHorizontalBorder = bodyBorder,
InsideVerticalBorder = bodyBorder
};
// Zebra striping for better row distinction
styledTable.Zebra = new ZebraColor("F5F5F5", "FFFFFF");// Example: Applying different borders to table sections
Table styledTable = new Table(4, 4);
// Create distinct border styles for header and body
BorderStyle headerBorder = new BorderStyle
{
BorderColor = Color.Navy,
BorderValue = BorderValues.Double,
BorderSize = 8
};
BorderStyle bodyBorder = new BorderStyle
{
BorderColor = Color.Gray,
BorderValue = BorderValues.Dotted,
BorderSize = 3
};
// Apply different borders to different parts of the table
// This creates visual hierarchy and improves readability
styledTable.Borders = new TableBorders
{
TopBorder = headerBorder,
BottomBorder = headerBorder,
LeftBorder = bodyBorder,
RightBorder = bodyBorder,
InsideHorizontalBorder = bodyBorder,
InsideVerticalBorder = bodyBorder
};
// Zebra striping for better row distinction
styledTable.Zebra = new ZebraColor("F5F5F5", "FFFFFF");IRON VB CONVERTER ERROR developers@ironsoftware.comLas propiedades de anchura y alineación de la tabla proporcionan un control adicional del diseño. Establezca tablas con anchuras o porcentajes específicos, alinéelas dentro del documento y controle la interacción con el contenido circundante. Las opciones de estilo a nivel de celda incluyen colores de fondo individuales, alineación de texto y ajustes de relleno, lo que proporciona un control granular sobre cada aspecto de la apariencia de la tabla.
Estas opciones de estilo permiten crear tablas que se ajustan a los requisitos de diseño de cualquier documento, desde simples cuadrículas de datos hasta complejos estados financieros con múltiples jerarquías visuales.
Preguntas Frecuentes
¿Cómo puedo crear una tabla con dimensiones específicas en un documento de Word?
Con IronWord, puede crear una tabla instanciando la clase Table y especificando el número de filas y columnas. Por ejemplo, utilice 'var table = new IronWord.Models.Table(3,4);' para crear una tabla de 3 filas por 4 columnas. A continuación, añádala a un objeto WordDocument y guárdela como un archivo DOCX.
¿Puedo dar estilo a las tablas con bordes y colores mediante programación?
Sí, IronWord le permite configurar un estilo de tabla completo que incluye colores de fondo, sombreado, bordes, rayas de cebra y anchura. Puede aplicar estos estilos al objeto Tabla antes de añadirlo al documento Word.
¿Cómo puedo acceder a celdas específicas de una tabla y rellenarlas?
IronWord utiliza la indexación basada en cero para acceder a las celdas de las tablas. Puede acceder a las celdas mediante la notación intuitiva [fila, columna] y, a continuación, rellenarlas con distintos tipos de contenido, como texto, imágenes, formas, párrafos o incluso tablas anidadas.
¿Qué tipo de contenido puedo añadir a las celdas de una tabla?
Utilizando la clase TableCell de IronWord, puede añadir múltiples tipos de contenido a través del método AddChild, que acepta objetos ContentElement. Esto incluye párrafos, imágenes, formas e incluso tablas para crear estructuras de tablas anidadas.
¿Es posible crear tablas anidadas dentro de las celdas de una tabla?
Sí, IronWord admite tablas anidadas. Dado que el método AddChild acepta objetos ContentElement, incluidas tablas, puede añadir una tabla dentro de una celda de tabla para gestionar requisitos complejos de organización de datos.
¿Cuál es la forma más rápida de generar un archivo DOCX con una tabla?
El enfoque más rápido con IronWord es crear un objeto Table con dimensiones, instanciar un WordDocument, añadir la tabla utilizando AddTable(), y guardar con SaveAs(). Todo este proceso se puede completar en sólo 4 líneas de código.






