Cómo Manipular un Documento Word Usando C#
En la era actual, los documentos de Microsoft Word son sinónimos de trabajo de oficina y comunicación profesional y personal. Por lo tanto, manipular programáticamente documentos de Word es crítico para los desarrolladores que buscan automatizar tareas para mostrar a los usuarios en sus aplicaciones. Aunque hay muchas bibliotecas disponibles, no todas son tan robustas como las demás. Sin embargo, un competidor que se destaca del resto es IronWord. IronWord es una biblioteca C# de DOCX de Word confiable y robusta que es fácil de usar y entender, y simplifica el trabajo con documentos de Word.
Este artículo explorará cómo podemos utilizar rápidamente IronWord para leer documentos de Word con ejemplos cortos.
How To Read a Word File Using C#
-
Crea una aplicación de consola en Visual Studio
-
Instala la biblioteca IronWord C# DOCX
-
Cree un nuevo documento de Word utilizando la clase WordDocument
-
Añadir texto al documento de Word
-
Recorrer cada párrafo usando la clase Paragraph
-
Mostrar los contenidos
IronWord: La Biblioteca DOCX C#

IronWord es una biblioteca flexible y escalable con una API sencilla y fácil de usar que elimina las molestias de integrar documentos de Word en aplicaciones. Ya sea que desee agregar e integrar un documento de texto simple a su aplicación o crear tablas y reportes complejos para mostrar a los usuarios, IronWord lo tiene todo cubierto.
Aquí están sus características más notables:
-
Manipulación de documentos: IronWord permite a los desarrolladores manipular documentos de Word con facilidad. Ya sea que los usuarios quieran insertar párrafos de texto o estructuras más complejas como tablas e imágenes, IronWord puede hacerlo todo.
-
Soporte y compatibilidad multiplataforma: IronWord está diseñado para ser flexible y apoya a los desarrolladores en múltiples plataformas. Soporta varias .NET Core (8, 7, 6, 5 y 3.1+), .NET Standard (2.0+), .NET Framework (4.6.2+) e incluso Azure. Además, los desarrolladores pueden utilizar IronWord en diferentes plataformas y sistemas, incluidos pero no limitados a Windows, Linux, macOS y Android. Cubre las plataformas más comunes y permite a los desarrolladores construir aplicaciones multiplataforma rápidamente.
-
Independencia de Microsoft Office: Un problema común al integrar documentos de Word en aplicaciones .NET es que bibliotecas populares como Interop requieren una instalación con licencia de Microsoft Office. Sin embargo, IronWord alivia ese problema al ser independiente de esa restricción. Los desarrolladores pueden aprovechar al máximo el poder de los documentos de Word sin estar restringidos por la licencia y la instalación de Microsoft Word.
-
Opciones de formato: IronWord ofrece un amplio soporte para el formato y el estilo, lo que permite a los desarrolladores personalizar el documento. Los desarrolladores pueden aplicar fuentes a su texto, colores, alineaciones y otros formatos complejos, como estilos de tabla.
-
Facilidad de uso y soporte extensivo: Junto con una API fácil de entender y llamadas de métodos directas, IronWord también proporciona referencias de API de extensión y ejemplos de código para ayudar a los desarrolladores a determinar la forma más óptima de utilizar IronWord.
Creación de un nuevo proyecto de consola en Visual Studio
Antes de sumergirnos en el ejemplo, comencemos creando un proyecto de consola en blanco en Visual Studio.

Luego proporcionamos un nombre y una ubicación de guardado para el proyecto.

A continuación, seleccione el framework .NET que utilizará. En este ejemplo, utilizaré .NET 8.0.

Después de crear y configurar el nuevo proyecto de consola, instalemos nuestra biblioteca de palabras C#, IronWord.
Instalación de IronWord
Hay dos maneras de instalar IronWord.
1. Instalación mediante el Administrador de paquetes NuGet
Para instalarlo a través del Administrador de Paquetes NuGet, haga clic en herramientas y luego en Manage NuGet Packages for Solution. Luego buscamos IronWord en la barra de búsqueda e instalamos **IronWord**.

2. Instalación a través de la consola del administrador de paquetes NuGet
Un método alternativo es instalarlo a través de la Consola del Administrador de Paquetes NuGet. Para hacerlo, ejecute el siguiente comando en la consola:
Clave de licencia
Tenga en cuenta que IronWord no funciona sin una clave de licencia; puede obtener uno aquí como parte de una prueba gratuita.
Después de obtener una clave de prueba, asegúrese de que esta variable esté configurada en su proyecto.
// Replace the license key variable with the trial key you obtained
IronWord.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";' Replace the license key variable with the trial key you obtained
IronWord.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"Reading Word Documents in C#
Después de instalar los requisitos previos, demostraremos la simplicidad de leer un documento de Microsoft Word usando IronWord en el siguiente código.
Primero, importamos los namespaces necesarios. Usando IronWord, creamos un nuevo documento y añadimos texto de muestra. Luego accedemos a los párrafos y texto usando el objeto WordDocument para imprimir el texto dentro del documento de Word.
using IronWord;
using IronWord.Models;
#region Licensing
// Set the IronWord license key before using the IronWord functionalities
IronWord.License.LicenseKey = "YOUR-KEY-HERE";
#endregion
// Create text run with sample text
Text textRunExample = new Text("Sample text");
// Create a paragraph and add the text run to it
Paragraph paragraphExample = new Paragraph();
paragraphExample.AddChild(textRunExample);
// Create a new Word document with the paragraph
WordDocument doc = new WordDocument(paragraphExample);
// Export the document as a DOCX file
doc.SaveAs("document.docx");
// Access paragraphs and text runs within the document
foreach (Paragraph paragraph in doc.Paragraphs)
{
foreach (Text textRun in paragraph.Texts)
{
// Access text content
string content = textRun.Text;
// Display the content to the console
Console.WriteLine(content);
}
}Imports IronWord
Imports IronWord.Models
#Region "Licensing"
' Set the IronWord license key before using the IronWord functionalities
IronWord.License.LicenseKey = "YOUR-KEY-HERE"
'#End Region
' Create text run with sample text
Dim textRunExample As New Text("Sample text")
' Create a paragraph and add the text run to it
Dim paragraphExample As New Paragraph()
paragraphExample.AddChild(textRunExample)
' Create a new Word document with the paragraph
Dim doc As New WordDocument(paragraphExample)
' Export the document as a DOCX file
doc.SaveAs("document.docx")
' Access paragraphs and text runs within the document
For Each paragraph As Paragraph In doc.Paragraphs
For Each textRun As Text In paragraph.Texts
' Access text content
Dim content As String = textRun.Text
' Display the content to the console
Console.WriteLine(content)
Next textRun
Next paragraphExploremos los métodos y parámetros para leer archivos de Word desde el código anterior.
-
Primero creamos un objeto Text y le asignamos la cadena "Texto de muestra".
-
Luego instanciamos un objeto Paragraph y añadimos el "textRunExample" a él.
-
También instanciamos un objeto WordDocument, lo nombramos
WordDocument doc,y le pasamos elparagraphExamplepara crear un nuevo documento de Word que contenga el párrafo. -
El código guarda el documento de Word con el nombre de archivo "document.docx" para su uso posterior.
-
Para acceder a los párrafos en el documento de Word que acabamos de crear, accedemos a la propiedad "Paragraphs" del objeto WordDocument. La propiedad "Paragraphs" es una lista. Por lo tanto, llamamos a un bucle foreach para iterar a través de ella.
-
Para obtener el texto dentro del párrafo, accedemos a la propiedad "Texts" de Paragraphs. Esto también devuelve una lista de Text.
-
Finalmente, asignamos el Text a una variable de cadena llamada "content" y la imprimimos en la consola.
Salida de consola

Reading an existing Word document in C#
En el ejemplo anterior, creamos programáticamente un nuevo documento de Word y leímos su contenido. Podemos seguir pasos similares para leer un documento de Word existente realizando algunos cambios en el código.
Documento de entrada

using IronWord;
using IronWord.Models;
#region Licensing
// Set the IronWord license key before using the IronWord functionalities
IronWord.License.LicenseKey = "YOUR-KEY-HERE";
#endregion
// Load an existing Word document
WordDocument doc = new WordDocument("existing_document.docx");
// Access paragraphs and text runs within the document
foreach (Paragraph paragraph in doc.Paragraphs)
{
foreach (Text textRun in paragraph.Texts)
{
// Access text content
string content = textRun.Text;
// Display the content to the console
Console.WriteLine(content);
}
}Imports IronWord
Imports IronWord.Models
#Region "Licensing"
' Set the IronWord license key before using the IronWord functionalities
IronWord.License.LicenseKey = "YOUR-KEY-HERE"
'#End Region
' Load an existing Word document
Dim doc As New WordDocument("existing_document.docx")
' Access paragraphs and text runs within the document
For Each paragraph As Paragraph In doc.Paragraphs
For Each textRun As Text In paragraph.Texts
' Access text content
Dim content As String = textRun.Text
' Display the content to the console
Console.WriteLine(content)
Next textRun
Next paragraphLa principal diferencia entre los dos ejemplos es el parámetro que se pasa al objeto WordDocument. En lugar de crear un nuevo documento, cargamos un archivo de Word existente en él. El resto es igual al otro ejemplo.
Salida de consola

Conclusión
A lo largo de los ejemplos, demostramos lo sencillo que es usar la biblioteca IronWord para manipular y leer documentos de Word programáticamente en C#. La flexibilidad y escalabilidad de la biblioteca IronWord la convierten en una herramienta valiosa que permite a los desarrolladores usar IronWord en ejemplos prácticos y de la vida real, como completar plantillas, generar informes y procesar documentos por lotes. Comprender cómo Word se integra con aplicaciones es valioso ya que proporciona a los desarrolladores más soluciones a sus problemas.
Además, los desarrolladores pueden probar las amplias características de IronWord por un período de tiempo antes de realizar la compra, ya que ofrece una licencia de prueba gratuita. Junto con la facilidad de uso, IronWord también viene con una completa documentación y soporte 24/5 soporte para los desarrolladores, aliviando la frustración constante que pueden enfrentar los desarrolladores ante la producción. También ofrecemos varios tutoriales y una serie de ejemplos de código como referencia para ayudarle a comenzar con IronWord.
Después de probar varios aspectos de IronWord utilizando una licencia de prueba, puede comprar nuestra licencia de desarrollador Lite que comienza en $599 y aumenta de Lite a Professional. Por favor, consulte nuestra página de licencias para obtener más información.

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.
Artículos Relacionados

