Como adicionar uma tabela a um arquivo DOCX em C# | IronWord

Como adicionar uma tabela a um arquivo DOCX usando C# com IronWord

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWord permite que os desenvolvedores adicionem tabelas programaticamente a documentos Word em C# criando objetos Table com linhas e colunas especificadas, estilizando-os com bordas e cores, e populando células com conteúdo antes de salvar como arquivos DOCX.

Início rápido: Crie e salve uma tabela com uma única chamada

Este exemplo demonstra como criar uma tabela no IronWord. Crie a tabela com as dimensões, aplique estilos, adicione conteúdo, insira-a em um documento e salve. Você pode gerar um arquivo DOCX com uma tabela formatada em minutos.

  1. Instale IronWord com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronWord
  2. Copie e execute este trecho de código.

    var table = new IronWord.Models.Table(3,4);
    var doc = new IronWord.WordDocument();
    doc.AddTable(table);
    doc.SaveAs("QuickTable.docx");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronWord em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como adiciono uma tabela ao meu documento do Word?

Uma tabela é um componente fundamental dos documentos do Word. Primeiro, instancie a classe Table fornecendo o número de linhas e colunas. Configure o estilo da tabela, incluindo cor de fundo, sombreamento, borda, listras zebradas e largura. Segundo, acesse cada célula usando indexação intuitiva [row, column]. Adicione texto, imagens, formas, parágrafos ou até mesmo tabelas a cada célula. Por fim, adicione a tabela ao documento do Word.

As tabelas no IronWord fornecem uma base flexível para organizar dados estruturados em documentos do Word. Seja criando faturas, relatórios ou resumos de dados, a classe Table oferece controle abrangente sobre o conteúdo e a apresentação. O sistema de indexação baseado em zero simplifica a iteração programática de células, enquanto as opções de estilo avançadas garantem uma aparência profissional.

PontasTodas as posições de índice de linha e coluna seguem a indexação baseada em zero.

: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();

// 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");
$vbLabelText   $csharpLabel
Documento do Word mostrando uma tabela 4x3 vazia com colunas para Número, Nome e Sobrenome, e sombreamento alternado nas linhas.

O método AddChild da classe TableCell aceita um objeto ContentElement, que inclui parágrafos, imagens, formas e tabelas. Isso possibilita tabelas aninhadas para casos de uso complexos.

Ao trabalhar com células de tabela, o IronWord oferece várias abordagens para o gerenciamento de conteúdo. Instancie um TableCell com conteúdo inicial usando o construtor ou adicione conteúdo de forma incremental usando o método AddChild. Essa flexibilidade permite a criação de estruturas de células complexas que combinam diferentes tipos de conteúdo. Por exemplo, uma única célula pode conter um parágrafo de cabeçalho seguido por uma imagem e uma tabela aninhada para especificações detalhadas.

Aqui está um exemplo que demonstra técnicas avançadas de análise de populações celulares:

// 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 IronWord
$vbLabelText   $csharpLabel

Que opções de estilo posso aplicar às tabelas?

O IronWord oferece amplas opções de formatação para tabelas, permitindo a criação de documentos visualmente atraentes e profissionais. Além das bordas e cores básicas, controle o espaçamento interno das células, o alinhamento e aplique formatação condicional por meio de listras zebradas. O sistema de estilização combina potência com design intuitivo, usando nomes de propriedades familiares e enumerações de valores claras.

Quais estilos de borda estão disponíveis?

Explore todas as opções disponíveis para valores de borda usando o enum BorderValues:

Menu de estilos de borda de palavras mostrando opções como Simples, Dupla, Tripla, Pontilhada, Tracejada, Ondulada e várias combinações de espessura.

A enumeração BorderValues fornece opções abrangentes para estética de tabelas. Desde linhas simples até padrões complexos como ondas e pontos, cada estilo serve a propósitos de design específicos. Documentos comerciais se beneficiam de bordas duplas ou triplas profissionais, enquanto documentos criativos utilizam padrões de ondas ou pontos tracejados. A propriedade BorderSize funciona com BorderValue para fornecer controle preciso sobre a espessura da linha, medida em oitavos de ponto.

Aqui está um exemplo prático mostrando diferentes configurações de borda:

// 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");
$vbLabelText   $csharpLabel

As propriedades de largura e alinhamento da tabela oferecem controle adicional de layout. Defina larguras ou percentagens específicas para as tabelas, alinhe-as no documento e controle a interação com o conteúdo circundante. As opções de estilo em nível de célula incluem cores de fundo individuais, alinhamento de texto e ajustes de espaçamento, proporcionando controle preciso sobre todos os aspectos da aparência da tabela.

Essas opções de estilo permitem a criação de tabelas que atendem a qualquer requisito de design de documento, desde simples grades de dados até demonstrações financeiras complexas com múltiplas hierarquias visuais.

Perguntas frequentes

Como faço para criar uma tabela com dimensões específicas em um documento do Word?

Com o IronWord, você pode criar uma tabela instanciando a classe `Table` e especificando o número de linhas e colunas. Por exemplo, use `var table = new IronWord.Models.Table(3,4);` para criar uma tabela com 3 linhas e 4 colunas. Em seguida, adicione-a a um objeto `WordDocument` e salve como um arquivo DOCX.

Posso estilizar tabelas com bordas e cores programaticamente?

Sim, o IronWord permite configurar estilos abrangentes para tabelas, incluindo cores de fundo, sombreamento, bordas, listras zebradas e largura. Você pode aplicar esses estilos ao seu objeto de tabela antes de adicioná-lo ao documento do Word.

Como faço para acessar e preencher células específicas em uma tabela?

O IronWord usa indexação baseada em zero para acessar as células da tabela. Você pode acessar as células usando a notação intuitiva [linha, coluna] e, em seguida, preenchê-las com vários tipos de conteúdo, incluindo texto, imagens, formas, parágrafos ou até mesmo tabelas aninhadas.

Que tipos de conteúdo posso adicionar às células da tabela?

Utilizando a classe TableCell do IronWord, você pode adicionar múltiplos tipos de conteúdo através do método AddChild, que aceita objetos ContentElement. Isso inclui parágrafos, imagens, formas e até mesmo tabelas para criar estruturas de tabelas aninhadas.

É possível criar tabelas aninhadas dentro de células de tabela?

Sim, o IronWord suporta tabelas aninhadas. Como o método AddChild aceita objetos ContentElement, incluindo tabelas, você pode adicionar uma tabela dentro de uma célula de tabela para lidar com requisitos complexos de organização de dados.

Qual a maneira mais rápida de gerar um arquivo DOCX com uma tabela?

A maneira mais rápida de usar o IronWord é criar um objeto Table com dimensões, instanciar um WordDocument, adicionar a tabela usando AddTable() e salvar com SaveAs(). Todo esse processo pode ser concluído em apenas 4 linhas de código.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 35,581 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronWord
executar um exemplo Veja seus dados se transformarem em um documento do Word.