USO DE IRONWORD

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

Actualizado 12 de marzo, 2024
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;
//  Crear instancia textrun
TextRun textRun = new TextRun("Hello, World!");
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
//  Crear un nuevo objeto de documento Word
WordDocument doc = new WordDocument(paragraph);
//  Exportar docx
doc.SaveAs("example.docx"); //  guardar archivo docx en disco
using IronWord;
using IronWord.Models;
//  Crear instancia textrun
TextRun textRun = new TextRun("Hello, World!");
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
//  Crear un nuevo objeto de documento Word
WordDocument doc = new WordDocument(paragraph);
//  Exportar docx
doc.SaveAs("example.docx"); //  guardar archivo docx en disco
Imports IronWord
Imports IronWord.Models
'  Crear instancia textrun
Private textRun As New TextRun("Hello, World!")
Private paragraph As New Paragraph()
paragraph.AddTextRun(textRun)
'  Crear un nuevo objeto de documento Word
Dim doc As New WordDocument(paragraph)
'  Exportar docx
doc.SaveAs("example.docx") '  guardar archivo docx en disco
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;
//  Crear textrun
TextRun textRun = new TextRun("Hello, World!"); //  añadir cadena
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
//  Configurar texto
TextRun introText = new TextRun("This is an example paragraph with italic and bold styling."); //  añadir cadena o texto
TextStyle italicStyle = new TextStyle()
{
    IsItalic = true
};
TextRun italicText = new TextRun("Italic example sentence.", italicStyle); 
//  añadir cadena en cursiva
TextStyle boldStyle = new TextStyle()
{
    IsBold = true
};
TextRun boldText = new TextRun("Bold example sentence.", boldStyle); 
//  añadir cadena en negrita
//  Añadir texto
paragraph.AddTextRun(introText);
paragraph.AddTextRun(italicText);
paragraph.AddTextRun(boldText);
//  Crear un nuevo documento Word
WordDocument doc = new WordDocument(paragraph);
//  Exportar documento docx
doc.SaveAs("example.docx");//  archivo docx guardar en ubicación EXE
using IronWord;
using IronWord.Models;
//  Crear textrun
TextRun textRun = new TextRun("Hello, World!"); //  añadir cadena
Paragraph paragraph = new Paragraph();
paragraph.AddTextRun(textRun);
//  Configurar texto
TextRun introText = new TextRun("This is an example paragraph with italic and bold styling."); //  añadir cadena o texto
TextStyle italicStyle = new TextStyle()
{
    IsItalic = true
};
TextRun italicText = new TextRun("Italic example sentence.", italicStyle); 
//  añadir cadena en cursiva
TextStyle boldStyle = new TextStyle()
{
    IsBold = true
};
TextRun boldText = new TextRun("Bold example sentence.", boldStyle); 
//  añadir cadena en negrita
//  Añadir texto
paragraph.AddTextRun(introText);
paragraph.AddTextRun(italicText);
paragraph.AddTextRun(boldText);
//  Crear un nuevo documento Word
WordDocument doc = new WordDocument(paragraph);
//  Exportar documento docx
doc.SaveAs("example.docx");//  archivo docx guardar en ubicación EXE
Imports IronWord
Imports IronWord.Models
'  Crear textrun
Private textRun As New TextRun("Hello, World!") '  añadir cadena
Private paragraph As New Paragraph()
paragraph.AddTextRun(textRun)
'  Configurar texto
Dim introText As New TextRun("This is an example paragraph with italic and bold styling.") '  añadir cadena o texto
Dim italicStyle As New TextStyle() With {.IsItalic = True}
Dim italicText As New TextRun("Italic example sentence.", italicStyle)
'  añadir cadena en cursiva
Dim boldStyle As New TextStyle() With {.IsBold = True}
Dim boldText As New TextRun("Bold example sentence.", boldStyle)
'  añadir cadena en negrita
'  Añadir texto
paragraph.AddTextRun(introText)
paragraph.AddTextRun(italicText)
paragraph.AddTextRun(boldText)
'  Crear un nuevo documento Word
Dim doc As New WordDocument(paragraph)
'  Exportar documento docx
doc.SaveAs("example.docx") '  archivo docx guardar en ubicación EXE
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;
//  Crear celda de tabla
TableCell cell = new TableCell();
TextRun textRun = new TextRun();
textRun.Text = "Sample text";
//  Añadir textrun a la celda
cell.AddContent(new Paragraph(textRun));
//  Configurar el estilo del borde 
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = new IronColor(IronSoftware.Drawing.Color.Black);
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick;
borderStyle.BorderSize = 5;
//  Configurar el borde de la tabla
TableBorders tableBorders = new TableBorders() { 
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};
cell.Borders = tableBorders;
//  Crear fila y añadir celda
TableRow row = new TableRow();
row.AddCell(cell); //  añadir celda
row.AddCell(cell); //  añadir celda
//  Crear tabla y añadir fila
Table table = new Table();
table.AddRow(row);
//  Generar documento a partir de la tabla
WordDocument doc = new WordDocument(table);
//  Exportar documento Word
doc.SaveAs("Document.docx"); //  archivo docx guardar en ubicación EXE
using IronWord;
using IronWord.Models;
//  Crear celda de tabla
TableCell cell = new TableCell();
TextRun textRun = new TextRun();
textRun.Text = "Sample text";
//  Añadir textrun a la celda
cell.AddContent(new Paragraph(textRun));
//  Configurar el estilo del borde 
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = new IronColor(IronSoftware.Drawing.Color.Black);
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick;
borderStyle.BorderSize = 5;
//  Configurar el borde de la tabla
TableBorders tableBorders = new TableBorders() { 
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};
cell.Borders = tableBorders;
//  Crear fila y añadir celda
TableRow row = new TableRow();
row.AddCell(cell); //  añadir celda
row.AddCell(cell); //  añadir celda
//  Crear tabla y añadir fila
Table table = new Table();
table.AddRow(row);
//  Generar documento a partir de la tabla
WordDocument doc = new WordDocument(table);
//  Exportar documento Word
doc.SaveAs("Document.docx"); //  archivo docx guardar en ubicación EXE
Imports IronWord
Imports IronWord.Models
'  Crear celda de tabla
Private cell As New TableCell()
Private textRun As New TextRun()
textRun.Text = "Sample text"
'  Añadir textrun a la celda
cell.AddContent(New Paragraph(textRun))
'  Configurar el estilo del borde 
Dim borderStyle As New BorderStyle()
borderStyle.BorderColor = New IronColor(IronSoftware.Drawing.Color.Black)
borderStyle.BorderValue = IronWord.Models.Enums.BorderValues.Thick
borderStyle.BorderSize = 5
'  Configurar el borde de la tabla
Dim tableBorders As New TableBorders() With {
	.TopBorder = borderStyle,
	.RightBorder = borderStyle,
	.BottomBorder = borderStyle,
	.LeftBorder = borderStyle
}
cell.Borders = tableBorders
'  Crear fila y añadir celda
Dim row As New TableRow()
row.AddCell(cell) '  añadir celda
row.AddCell(cell) '  añadir celda
'  Crear tabla y añadir fila
Dim table As New Table()
table.AddRow(row)
'  Generar documento a partir de la tabla
Dim doc As New WordDocument(table)
'  Exportar documento Word
doc.SaveAs("Document.docx") '  archivo docx guardar en ubicación EXE
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;
//  Cargar nuevo documento
WordDocument doc = new WordDocument();
//  Configurar imagen
IronWord.Models.Image image = new IronWord.Models.Image("SalesChart.jpg");
image.Width = 200; //  En píxel unitario (px)
image.Height = 200; //  En píxel unitario (px)
Paragraph paragraph = new Paragraph();
//  Añadir imagen
paragraph.AddImage(image);
//  Añadir párrafo 
doc.AddParagraph(paragraph);
//  Exportar docx
doc.SaveAs("save_document.docx"); //  archivo docx
using IronWord;
using IronWord.Models;
//  Cargar nuevo documento
WordDocument doc = new WordDocument();
//  Configurar imagen
IronWord.Models.Image image = new IronWord.Models.Image("SalesChart.jpg");
image.Width = 200; //  En píxel unitario (px)
image.Height = 200; //  En píxel unitario (px)
Paragraph paragraph = new Paragraph();
//  Añadir imagen
paragraph.AddImage(image);
//  Añadir párrafo 
doc.AddParagraph(paragraph);
//  Exportar docx
doc.SaveAs("save_document.docx"); //  archivo docx
Imports IronWord
Imports IronWord.Models
'  Cargar nuevo documento
Private doc As New WordDocument()
'  Configurar imagen
Private image As New IronWord.Models.Image("SalesChart.jpg")
image.Width = 200 '  En píxel unitario (px)
image.Height = 200 '  En píxel unitario (px)
Dim paragraph As New Paragraph()
'  Añadir imagen
paragraph.AddImage(image)
'  Añadir párrafo 
doc.AddParagraph(paragraph)
'  Exportar docx
doc.SaveAs("save_document.docx") '  archivo docx
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.6 recién publicada

Comenzar prueba gratuita Descargas totales: 1,951
Ver licencias >