Cómo agregar filas a una tabla en un documento de MS Word usando C#

Cómo agregar filas a una tabla en un documento de MS Word usando C#

En este tutorial, aprenderás cómo agregar filas programáticamente a una tabla en un documento de MS Word utilizando C#. Agregarás filas en un índice específico e insertarás varias filas vacías al final de la tabla.

Beneficios de Agregar Filas a Tablas en Documentos de Word

  1. Gestión de Contenido Dinámico:
    • Modifica fácilmente tablas existentes para adaptarlas a nuevos datos.
  2. Flexibilidad:
    • Ajusta las estructuras de las tablas programáticamente sin ediciones manuales.
  3. Automatización:
    • Gestiona eficientemente los datos de la tabla a través de scripts automatizados.

Requisitos Previos: Preparando el Entorno

  1. Tener Visual Studio o cualquier IDE de .NET instalado.
  2. Asegurarse de que la biblioteca Aspose.Words esté disponible a través de NuGet.

Guía Paso a Paso para Agregar Filas a una Tabla en Word

Paso 1: Instalar la Biblioteca Aspose.Words

Instala el paquete Aspose.Words utilizando el administrador de paquetes NuGet.

Install-Package Aspose.Words

Paso 2: Importar Espacios de Nombres Necesarios

Incluye los espacios de nombres Aspose.Words y Aspose.Words.Tables en tu proyecto.

using Aspose.Words;
using Aspose.Words.Tables;

Paso 3: Abrir el Documento de Word

Carga el documento de MS Word existente.

Document MSWordDocument = new Document(@"MS Word.docx");

Paso 4: Acceder a la Tabla

Obtén la Tabla por su índice del documento.

Table tableToAddRowsTo = MSWordDocument.FirstSection.Body.Tables[0];

Paso 5: Crear o Clonar una Fila

Crea una nueva Fila o clona una existente de la Tabla.

Row row = new Row(MSWordDocument);

Paso 6: Agregar Celdas a la Fila

Agrega Celdas y texto a la Fila.

for (int i = 0; i < 3; i++) 
{
    Cell cell = new Cell(MSWordDocument);
    cell.AppendChild(new Paragraph(MSWordDocument));
    cell.FirstParagraph.Runs.Add(new Run(MSWordDocument, "Texto en la Celda " + i));
    row.Cells.Add(cell);
}

Paso 7: Agregar Filas al Final

Utiliza RowCollection.Add para agregar Filas a la Tabla.

tableToAddRowsTo.Rows.Add(row);

Paso 8: Insertar Filas en un Índice Específico

Inserta Filas en un índice específico utilizando RowCollection.Insert.

tableToAddRowsTo.Rows.Insert(1, row);

Paso 9: Guardar el Documento Actualizado

Vuelve a guardar el documento con las filas añadidas.

MSWordDocument.Save(@"Filas Agregadas a la Tabla en MS Word.docx");

Código de Ejemplo para Agregar Filas a una Tabla en Word

A continuación se muestra el código completo para agregar filas a una tabla:

// Abrir Documento de MS Word
Document MSWordDocument = new Document(@"input.docx");

// Obtener la Tabla por índice
Table tableToAddRowsTo = MSWordDocument.FirstSection.Body.Tables[0];

// Crear un nuevo objeto de clase Row
Row row = new Row(MSWordDocument);

// Agregar tres Celdas a la colección de celdas de la Fila
for (int i = 0; i < 3; i++)
{
    Cell cell = new Cell(MSWordDocument);
    cell.AppendChild(new Paragraph(MSWordDocument));
    cell.FirstParagraph.Runs.Add(new Run(MSWordDocument, "Texto en la Celda " + i));
    row.Cells.Add(cell);
}

// Insertar nueva Fila después de la primera Fila
tableToAddRowsTo.Rows.Insert(1, row);

// Clonar una Fila existente de la Tabla
Row cloneOfRow = (Row)tableToAddRowsTo.FirstRow.Clone(true);

// Eliminar todo el contenido de todas las Celdas
foreach (Cell cell in cloneOfRow)
{
    cell.RemoveAllChildren();
    cell.EnsureMinimum();
}

// Agregar múltiples filas vacías al final de la tabla
for (int i = 0; i < 10; i++)
{
    Row emptyRow = (Row)cloneOfRow.Clone(true);
    tableToAddRowsTo.Rows.Add(emptyRow);
}

// Guardar documento actualizado
MSWordDocument.Save(@"output.docx");

Conclusión

Este tutorial ha demostrado cómo agregar filas a una tabla en un documento de MS Word utilizando C#. Al seguir estos pasos, puedes gestionar y modificar efectivamente tablas dentro de documentos de Word programáticamente.

 Español