C#/VB.NET: crear una tabla en Word

2023-09-27 06:52:47

Instalado a través de NuGet

PM> Install-Package Spire.Doc

enlaces relacionados

En MS Word, las tablas pueden organizar y presentar datos en filas y columnas, lo que hace que la información sea más fácil de entender y analizar. En este artículo, aprenderá cómo programar cree una tabla con datos en un documento de Word usando Spire.Doc for .NET.

Instalar Spire.Doc for .NET

Para empezar, debe agregar los archivos DLL incluidos en el paquete Spire.Doc for .NET como referencias en su proyecto .NET. Los archivos DLL se pueden descargar desde este enlace o instalar a través de NuGet.

PM> Install-Package Spire.Doc

Crear una tabla simple en Word

A continuación se muestran algunas de las clases y métodos principales proporcionados por Spire.Doc for .NET para crear y formatear tablas en Word.

Nombre Descripción
Clase de tabla Representa una tabla en un documento de Word.
Clase TableRow Representa una fila en una tabla.
Clase de celda de tabla Representa una celda específica en una tabla.
Método Sección.AddTbale() Agrega una nueva tabla a la sección especificada.
Método Table.ResetCells() Restablece el número de fila y el número de columna.
Propiedad Table.Rows Obtiene las filas de la tabla.
Propiedad TableRow.Height Establece la altura de la fila especificada.
TableRow.Cells Propiedad Devuelve la colección de células.
Propiedad TableRow.RowFormat Obtiene el formato de la fila especificada.

Los pasos detallados son los siguientes.

  • Cree un objeto Documento y agréguele una sección.
  • Prepare los datos para la fila del encabezado y otras filas, almacenándolos en una matriz de cadenas unidimensional y una matriz de cadenas bidimensionales, respectivamente.
  • Agregue una tabla a la sección usando el método Sección.AddTable().
  • Inserte datos en la fila del encabezado y establezca el formato de la fila, incluida la altura de la fila, el color de fondo y la alineación del texto.
  • Inserte datos en el resto de las filas y aplique formato a estas filas.
  • Guarde el documento en otro archivo utilizando el método Document.SaveToFile().
  • C#
  • VB.NET
using System;
    using System.Drawing;
    using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    
    namespace WordTable
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Document object
                Document doc = new Document();
                //Add a section
                Section s = doc.AddSection();
    
                //Define the data for the table
                String[] Header = { "Date", "Description", "Country", "On Hands", "On Order" };
                String[][] data = {
                                      new String[]{ "08/07/2021","Dive kayak","United States","24","16"},
                                      new String[]{ "08/07/2021","Underwater Diver Vehicle","United States","5","3"},
                                      new String[]{ "08/07/2021","Regulator System","Czech Republic","165","216"},
                                      new String[]{ "08/08/2021","Second Stage Regulator","United States","98","88"},
                                      new String[]{ "08/08/2021","Personal Dive Sonar","United States","46","45"},
                                      new String[]{ "08/09/2021","Compass Console Mount","United States","211","300"},
                                      new String[]{ "08/09/2021","Regulator System","United Kingdom","166","100"},
                                      new String[]{ "08/10/2021","Alternate Inflation Regulator","United Kingdom","47","43"},
                                  };
                //Add a table
                Table table = s.AddTable(true);
                table.ResetCells(data.Length + 1, Header.Length);
    
                //Set the first row as table header
                TableRow FRow = table.Rows[0];
                FRow.IsHeader = true;
    
                //Set the height and color of the first row
                FRow.Height = 23;
                FRow.RowFormat.BackColor = Color.LightSeaGreen;
                for (int i = 0; i < Header.Length; i++)
                {
                    //Set alignment for cells
                    Paragraph p = FRow.Cells[i].AddParagraph();
                    FRow.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
                    p.Format.HorizontalAlignment = HorizontalAlignment.Center;
    
                    //Set data format
                    TextRange TR = p.AppendText(Header[i]);
                    TR.CharacterFormat.FontName = "Calibri";
                    TR.CharacterFormat.FontSize = 12;
                    TR.CharacterFormat.Bold = true;
                }
    
                //Add data to the rest of rows and set cell format
                for (int r = 0; r < data.Length; r++)
                {
                    TableRow DataRow = table.Rows[r + 1];
                    DataRow.Height = 20;
                    for (int c = 0; c < data[r].Length; c++)
                    {
                        DataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
                        Paragraph p2 = DataRow.Cells[c].AddParagraph();
                        TextRange TR2 = p2.AppendText(data[r][c]);
                        p2.Format.HorizontalAlignment = HorizontalAlignment.Center;
    
                        //Set data format
                        TR2.CharacterFormat.FontName = "Calibri";
                        TR2.CharacterFormat.FontSize = 11;
                    }
                }
    
                //Save the document
                doc.SaveToFile("WordTable.docx", FileFormat.Docx2013);
            }
        }
    }

C#/VB.NET: Create a Table in Word

Solicite una licencia temporal

Si desea eliminar el mensaje de evaluación de los documentos generados o deshacerse de las limitaciones de la función, por favor solicitar una licencia de prueba de 30 días para ti.

Ver también