USO DE IRONWORD

Cómo crear documentos Word sin Office Interop en C#

Actualizado marzo 12, a. m.
Compartir:

Los documentos de Microsoft Word se utilizan ampliamente para diversos fines, desde informes empresariales formales hasta cartas personales. En C#, los desarrolladores a menudo necesitan generar documentos de Microsoft Word mediante programación. Tradicionalmente, los desarrolladores de aplicaciones Windows han utilizado Microsoft Office Interop para generar y crear documentos Word con C#.

Sin embargo, este enfoque no es accesible para todo el mundo, y los desarrolladores pueden encontrarse utilizando un sistema operativo o en una máquina Linux en la que no esté disponible la interfaz de Microsoft Office. En estos casos, los desarrolladores deben explorar otras bibliotecas que puedan funcionar de forma independiente en distintas plataformas. Una de estas potentes bibliotecas para trabajar con archivos Word mediante programación es IronWord, de **Software de hierro.

IronWord proporciona una sólida funcionalidad para trabajar con documentos de Word en aplicaciones .NET y puede ejecutarse en diferentes plataformas e imágenes docker/contenedores basados en Linux. Con IronWord, que tiene C# intuitivo, VB.NET Word, y Docx Document API, no hay necesidad de instalar Microsoft Office, automatización de Office, o Word Interop, para construir, editar y exportar archivos de documentos de Word. IronWord es totalmente compatible con .NET 8, 7, 6, Framework, Core y Azure.

Este artículo explorará la creación de documentos Word en C# utilizando la librería IronWord.

Cómo crear documentos de Word sin Office Interop en C#

  1. Cree un nuevo proyecto C#.
  2. Instale el IronWord biblioteca.
  3. Cree un documento Word utilizando la biblioteca IronWord.
  4. Añade contenido al documento ya existente.
  5. Guarde el documento Word creado.
  6. Abra y visualice el documento Word creado.

    **Requisitos previos

  7. Visual Studio: Asegúrese de tener Visual Studio o cualquier otro entorno de desarrollo C# instalado.
  8. NuGet Package Manager: Asegúrese de que puede utilizar NuGet para gestionar paquetes en su proyecto.

Paso 1: Crear un nuevo proyecto C&num

Cree una nueva aplicación de consola C# o utilice un proyecto existente en el que desee generar el documento Word.

Seleccione la plantilla de aplicación de consola y haga clic en Siguiente.

Cómo crear documentos Word sin Office Interop en C#: Figura 1 - Plantilla de la aplicación de consola para crear un nuevo proyecto

En el siguiente paso, puede proporcionar los nombres de la solución y del proyecto.

Cómo crear documentos Word sin Office Interop en C#: Figura 2 - Configuración del proyecto con la solución y el nombre del proyecto

Seleccione la versión .NET y haga clic en "Crear".

Cómo crear documentos de Word sin Office Interop en C#: Figura 3 - Creación del proyecto con la versión .NET correcta

Paso 2: Instalar la biblioteca IronWord

Abra su proyecto C# e instale el IronWord mediante la consola del gestor de paquetes NuGet:

Install-Package IronWord -Version 2024.1.2

El paquete NuGet también puede instalarse mediante el gestor de paquetes de Visual Studio, como se muestra a continuación.

Cómo crear documentos Word sin Office Interop en C#: Figura 4 - Instalación de IronWord con el gestor de paquetes VS

Paso 3: Crear y guardar un documento de Word utilizando la biblioteca IronWord

Empecemos con el sencillo ejemplo de crear un documento Word utilizando la biblioteca IronWord. El siguiente código muestra cómo crear un documento esencial de Word con un único párrafo que contiene el texto "Hola, mundo!"

using IronWord;
using IronWord.Models;
// Create textrun instance
TextRun textRun = new TextRun("Hello, World!");
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
// Create a new Word document object
WordDocument doc = new WordDocument(paragraph);
// Export docx
doc.SaveAs("example.docx"); // save docx file to disk
using IronWord;
using IronWord.Models;
// Create textrun instance
TextRun textRun = new TextRun("Hello, World!");
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
// Create a new Word document object
WordDocument doc = new WordDocument(paragraph);
// Export docx
doc.SaveAs("example.docx"); // save docx file to disk
Imports IronWord
Imports IronWord.Models
' Create textrun instance
Private textRun As New TextRun("Hello, World!")
Private paragraph As New Paragraph()
paragraph.AddTextRun(textRun)
' Create a new Word document object
Dim doc As New WordDocument(paragraph)
' Export docx
doc.SaveAs("example.docx") ' save docx file to disk
VB   C#

Después de ejecutar el ejemplo de código anterior, se crea el nuevo archivo de documento, ejemplo.docx, y la salida es la que se muestra a continuación.

Cómo crear documentos de Word sin Office Interop en C#: Figura 5 - Documento Word creado mediante el código anterior.

Este es un ejemplo fundamental de generación de un archivo de documento Word utilizando IronWord. Para más información, puede consultar los documentos aquí.

Añadir párrafos con estilo a un documento Word.

Ahora que sabemos cómo crear un documento sencillo de Word con IronWord, vamos a añadir párrafos y texto con estilo.

TextRun también puede tomar datos de estilo, mejorando la representación visual del texto. El texto puede configurarse con estilos como tachado, negrita, cursiva y subrayado.

Modifica y añade el siguiente código al programa que has hecho anteriormente.

using IronWord;
using IronWord.Models;
// Create textrun
TextRun textRun = new TextRun("Hello, World!"); // add string
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
// Configure text
TextRun introText = new TextRun("This is an example paragraph with italic and bold styling."); // add string or text
TextStyle italicStyle = new TextStyle()
{
    IsItalic = true
};
TextRun italicText = new TextRun("Italic example sentence.", italicStyle); 
// add italic string
TextStyle boldStyle = new TextStyle()
{
    IsBold = true
};
TextRun boldText = new TextRun("Bold example sentence.", boldStyle); 
// add bold string
// Add text
paragraph.AddTextRun(introText);
paragraph.AddTextRun(italicText);
paragraph.AddTextRun(boldText);
// Create a new Word document
WordDocument doc = new WordDocument(paragraph);
// Export docx document
doc.SaveAs("example.docx");// docx file save in EXE location
using IronWord;
using IronWord.Models;
// Create textrun
TextRun textRun = new TextRun("Hello, World!"); // add string
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
// Configure text
TextRun introText = new TextRun("This is an example paragraph with italic and bold styling."); // add string or text
TextStyle italicStyle = new TextStyle()
{
    IsItalic = true
};
TextRun italicText = new TextRun("Italic example sentence.", italicStyle); 
// add italic string
TextStyle boldStyle = new TextStyle()
{
    IsBold = true
};
TextRun boldText = new TextRun("Bold example sentence.", boldStyle); 
// add bold string
// Add text
paragraph.AddTextRun(introText);
paragraph.AddTextRun(italicText);
paragraph.AddTextRun(boldText);
// Create a new Word document
WordDocument doc = new WordDocument(paragraph);
// Export docx document
doc.SaveAs("example.docx");// docx file save in EXE location
Imports IronWord
Imports IronWord.Models
' Create textrun
Private textRun As New TextRun("Hello, World!") ' add string
Private paragraph As New Paragraph()
paragraph.AddTextRun(textRun)
' Configure text
Dim introText As New TextRun("This is an example paragraph with italic and bold styling.") ' add string or text
Dim italicStyle As New TextStyle() With {.IsItalic = True}
Dim italicText As New TextRun("Italic example sentence.", italicStyle)
' add italic string
Dim boldStyle As New TextStyle() With {.IsBold = True}
Dim boldText As New TextRun("Bold example sentence.", boldStyle)
' add bold string
' Add text
paragraph.AddTextRun(introText)
paragraph.AddTextRun(italicText)
paragraph.AddTextRun(boldText)
' Create a new Word document
Dim doc As New WordDocument(paragraph)
' Export docx document
doc.SaveAs("example.docx") ' docx file save in EXE location
VB   C#

Añadir una tabla a un documento Word

Para una representación clara de los datos, también pueden representarse en una cuadrícula. Cuando los datos se organizan en forma de cuadrícula, se denomina tabla. Con IronWord, podemos añadir tablas e imágenes al documento Word, como se muestra a continuación:

using IronWord;
using IronWord.Models;
// Create table cell
TableCell cell = new TableCell();
TextRun textRun = new TextRun();
textRun.Text = "Sample text";
// Add textrun to the cell
cell.AddContent(new Paragraph(textRun));
// Configure border style 
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = new IronColor(IronSoftware.Drawing.Color.Black);
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick;
borderStyle.BorderSize = 5;
// Configure table border
TableBorders tableBorders = new TableBorders() { 
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};
cell.Borders = tableBorders;
// Create row and add cell
TableRow row = new TableRow();
row.AddCell(cell); // add cell
row.AddCell(cell); // add cell
// Create table and add row
Table table = new Table();
table.AddRow(row);
// Generate document from the table
WordDocument doc = new WordDocument(table);
// Export Word document
doc.SaveAs("Document.docx"); // docx file save in EXE location
using IronWord;
using IronWord.Models;
// Create table cell
TableCell cell = new TableCell();
TextRun textRun = new TextRun();
textRun.Text = "Sample text";
// Add textrun to the cell
cell.AddContent(new Paragraph(textRun));
// Configure border style 
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = new IronColor(IronSoftware.Drawing.Color.Black);
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick;
borderStyle.BorderSize = 5;
// Configure table border
TableBorders tableBorders = new TableBorders() { 
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};
cell.Borders = tableBorders;
// Create row and add cell
TableRow row = new TableRow();
row.AddCell(cell); // add cell
row.AddCell(cell); // add cell
// Create table and add row
Table table = new Table();
table.AddRow(row);
// Generate document from the table
WordDocument doc = new WordDocument(table);
// Export Word document
doc.SaveAs("Document.docx"); // docx file save in EXE location
Imports IronWord
Imports IronWord.Models
' Create table cell
Private cell As New TableCell()
Private textRun As New TextRun()
textRun.Text = "Sample text"
' Add textrun to the cell
cell.AddContent(New Paragraph(textRun))
' Configure border style 
Dim borderStyle As New BorderStyle()
borderStyle.BorderColor = New IronColor(IronSoftware.Drawing.Color.Black)
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick
borderStyle.BorderSize = 5
' Configure table border
Dim tableBorders As New TableBorders() With {
	.TopBorder = borderStyle,
	.RightBorder = borderStyle,
	.BottomBorder = borderStyle,
	.LeftBorder = borderStyle
}
cell.Borders = tableBorders
' Create row and add cell
Dim row As New TableRow()
row.AddCell(cell) ' add cell
row.AddCell(cell) ' add cell
' Create table and add row
Dim table As New Table()
table.AddRow(row)
' Generate document from the table
Dim doc As New WordDocument(table)
' Export Word document
doc.SaveAs("Document.docx") ' docx file save in EXE location
VB   C#

En el ejemplo anterior, hemos añadido una tabla a un documento Word utilizando bordes.

Añadir imágenes a un documento Word

Las imágenes mejoran la presentación del documento y pueden añadir más colorido y atractivo visual.

Las imágenes pueden añadirse mediante programación a un documento Word utilizando IronWord, como se muestra en el código siguiente:

using IronWord;
using IronWord.Models;
// Load new document
WordDocument doc = new WordDocument();
// Configure image
IronWord.Models.Image image = new IronWord.Models.Image("SalesChart.jpg");
image.Width = 200; // In unit pixel (px)
image.Height = 200; // In unit pixel (px)
Paragraph paragraph = new Paragraph();
// Add image
paragraph.AddImage(image);
// Add paragraph 
doc.AddParagraph(paragraph);
// Export docx
doc.SaveAs("save_document.docx"); // docx file
using IronWord;
using IronWord.Models;
// Load new document
WordDocument doc = new WordDocument();
// Configure image
IronWord.Models.Image image = new IronWord.Models.Image("SalesChart.jpg");
image.Width = 200; // In unit pixel (px)
image.Height = 200; // In unit pixel (px)
Paragraph paragraph = new Paragraph();
// Add image
paragraph.AddImage(image);
// Add paragraph 
doc.AddParagraph(paragraph);
// Export docx
doc.SaveAs("save_document.docx"); // docx file
Imports IronWord
Imports IronWord.Models
' Load new document
Private doc As New WordDocument()
' Configure image
Private image As New IronWord.Models.Image("SalesChart.jpg")
image.Width = 200 ' In unit pixel (px)
image.Height = 200 ' In unit pixel (px)
Dim paragraph As New Paragraph()
' Add image
paragraph.AddImage(image)
' Add paragraph 
doc.AddParagraph(paragraph)
' Export docx
doc.SaveAs("save_document.docx") ' docx file
VB   C#

Aquí, estamos agregando una imagen usando IronWord.Models.Image con un Alto y Ancho de 200 pixeles a un párrafo.

Licencias (prueba gratuita disponible)

IronWord requiere una licencia de uso. Puede obtenerse una clave de prueba en el sitio web de Iron Software aquí. Esta clave debe colocarse en appsettings.json.

{
    "IronWord.LicenseKey":"IRONWORD.MYLICENSE.KEY.TRIAL"
}
{
    "IronWord.LicenseKey":"IRONWORD.MYLICENSE.KEY.TRIAL"
}
If True Then
	"IronWord.LicenseKey":"IRONWORD.MYLICENSE.KEY.TRIAL"
End If
VB   C#

Proporcione su correo electrónico para obtener una licencia de prueba. Cuando envíe su dirección de correo electrónico, recibirá la clave por correo electrónico.

Cómo crear documentos Word sin Office Interop en C#: Figura 6 - Ventana emergente tras un formulario de prueba enviado correctamente

Conclusión

Creación de documentos de Word en C# utilizando el IronWord ofrece una forma flexible y eficaz de generar documentos sin depender de Microsoft Office. Tanto si necesita crear cartas sencillas como informes complejos con tablas e imágenes, IronWord le permite conseguirlo mediante programación. Este artículo proporciona un tutorial completo sobre la creación de documentos Word. Con IronWord, podrá automatizar la creación de documentos Word, haciendo que sus aplicaciones C# sean más versátiles y productivas.

Y para los desarrolladores que buscan la manipulación de archivos PDF para trabajar en conjunto con sus documentos de Word generados, no busque más allá de IronPDF otra biblioteca C # producido por Iron Software. Para comprobarlo, haga clic en aquí.

< ANTERIOR
Cómo crear un documento de Word mediante programación en VB .NET
SIGUIENTE >
Cómo leer documentos de Word con formato en C#

¿Listo para empezar? Versión: 2024.8 acaba de salir

Descarga gratuita de NuGet Descargas totales: 3,891 Ver licencias >