USO DE IRONWORD

Cómo manipular un documento de Word usando C#

Publicado en 24 de diciembre, 2023
Compartir:

Introducción

Microsoft creó Word para que sirviera de procesador de textos. Inicialmente disponible con el nombre de Multi-Tool Word para sistemas Xenix, se presentó el 25 de octubre de 1983. Posteriormente se desarrollaron versiones para una amplia gama de sistemas operativos, como SCO Unix(1990)Microsoft Windows(1989)Atari ST(1988)OS/2(1989)AT&T UNIX PC(1985)PC IBM con DOS(1983)Apple Macintosh con macOS clásico(1985)macOS(2001)Navegadores web(2010)iOS(2014)y Android(2015). Wine puede utilizarse para ejecutar versiones anteriores de Microsoft Word en Linux.

Las versiones comerciales de Word pueden licenciarse como aplicación independiente o como componente deMicrosoft 365que puede adquirirse como licencia perpetua o como parte de una suscripción a Microsoft 365. En este artículo, manipularemos documentos Word usando C# con la ayuda de los ensamblados Microsoft Interop y exploraremos cómo IronXL nos ayuda a Editar documentos Excel.

Cómo manipular un documento de Word utilizando C#

  1. Crea un nuevo proyecto de Visual Studio.

  2. Configure la biblioteca necesaria para leer documentos Word.

  3. Para manipular un documento Word, cargue un archivo existente o cree uno nuevo.

  4. Edite los datos del documento y analice el archivo.

  5. Deshazte de todos los objetos creados.

Qué es Microsoft Interop

Los programas escritos en C# o VB.NET pueden crear o abrir documentos de Word(DOC, DOCX y RTF) con OfficeInteroperabilidad para Microsoft Word. Sin embargo, tiene muchos inconvenientes cuando se utiliza en proyectos.

Hablaremos de los problemas frecuentes que puede encontrar al utilizar Microsoft Office Interop(Automatización de palabras) de C# o VB.NET en este artículo.

Por ejemplo:

  • Cada PC cliente necesario para la automatización de Word debe tener licencia para Microsoft Word.
  • En el PC de cada cliente debe estar instalada la misma versión de Microsoft Word.
  • Word utiliza algunos megabytes de RAM para cargar diferentes archivos y DLL en segundo plano cuando se utiliza la automatización.
  • Se accede a la API de Microsoft Word a través de un objeto COM. Pueden surgir problemas al llamar a un objeto COM desde código gestionado, como conversiones de tipo, necesidad de una envoltura COM y una integración deficiente de .NET Framework.

Creación de un nuevo proyecto en Visual Studio

Es necesario iniciar Visual Studio y crear un proyecto .NET antes de utilizar la biblioteca Interop. Visual Studio es compatible con cualquier versión, aunque se aconseja la más reciente. Dependiendo de sus necesidades, puede desarrollar una plantilla de proyecto o una aplicación que se asemeje a Windows Forms. En este caso utilizaré la aplicación de consola para simplificar.

Como Manipular Un Documento Word Usando C#: Figura 1 - Creación de un nuevo proyecto de Visual Studio

Configurar los detalles del proyecto

A continuación, indique la ubicación y el nombre del proyecto.

Como Manipular Un Documento Word Usando C#: Figura 2 - Configuración del Nuevo Proyecto VS

Crear un nuevo archivo de proyecto utilizando .NET Framework

Mediante el menú desplegable Marco, puede elegir un.NET Framework. Para este proyecto se utilizará Dot.NET Framework 4.7. La siguiente acción es pulsar el botón "Crear".

Una vez que la aplicación ha generado la solución, puede introducir el código y construir o ejecutar el programa accediendo al archivo Program.cs.

Como Manipular Un Documento De Word Usando C#: Figura 3 - Nuevo Proyecto .NET Archivo .cs

Ahora que la librería Microsoft.Office.Interop.Word ha sido añadida, podemos probar el código.

Instalar biblioteca de interoperabilidad

La siguiente reparación requiere la instalación de la biblioteca Interop. Para ello, introduzca el siguiente comando en la consola del gestor de paquetes NuGet:

:InstallCmd: Install-Package Microsoft.Office.Interop.Word

Cómo Manipular Un Documento Word Usando C#: Figura 4 - Para instalar la librería IronXL, puede usar la Consola del Administrador de Paquetes e ingresar el comando dado: Install-Package IronXL.Excel

Otra forma de encontrar el paquete "Interop" es utilizar el gestor de paquetes NuGet. Entre todos los paquetes NuGet relacionados con Interop, podemos seleccionar el paquete necesario para descargar de esta lista.

Como Manipular Un Documento Word Usando C#: Figura 5 - Seleccionando `Microsoft.Office.Interop.Word` Library

Una vez que haya instalado todas las bibliotecas necesarias, podrá empezar a editar archivos DOCX.

Manipulación de documentos Word existentes mediante Interop

Para utilizar Microsoft Word, primero debe crear una instancia de Microsoft.Office.Interop.Word.Application. En este caso, la comunicación se realizaría mediante documentos Word. El siguiente paso es crear una nueva instancia de documento Word utilizando la propiedad Documents de la instancia Microsoft.Office.Interop.Word.Application que acabamos de crear. Como se ve en el siguiente fragmento de código C#, esto nos permite manipular documentos de Word mediante programación

using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
Imports System
Imports System.Data
Imports Microsoft.Office.Interop.Word
Try
	Dim WordApp = New Microsoft.Office.Interop.Word.Application()
	Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
	WordDoc.Paragraphs (1).Range.Text = "New text here..."
	WordDoc.SaveAs("d:/NewDemo.docx")
	WordDoc.Close()
	WordApp.Quit()
Catch ex As Exception
	Console.WriteLine(ex.ToString())
End Try
VB   C#

En el código anterior, podemos editar el documento de Word en C#. En primer lugar, vamos a crear un objeto item para el procesador de textos que utiliza Interop. Con la ayuda del objeto creado que tiene un método open nos permite pasar el nombre del archivo Word existente. Nos ayuda a convertir el fichero en un objeto documento.

Utilizando el objeto documento podemos obtener todos los procesos disponibles relacionados con el documento Word existente. A continuación, utilizando el objeto párrafos obtenemos todo el contenido disponible en los archivos DOCX. Usando el array podemos reemplazar el texto de cada párrafo con los párrafos específicos pasándolos en el array. A continuación, podemos guardarlos en nuevos documentos MS Word como archivo DOCX. También podemos crear documentos Word utilizando Interop.

Biblioteca IronXL alternativa a Interop

IronXL es una alternativa a Microsoft Interop que puede utilizarse en programas .NET para manejar archivos Excel. Mientras que Microsoft Interop requiere interactuar con Excel a través de los ensamblados Interop, IronXL ofrece un método más directo, eficaz y potente para manipular mediante programación archivos Excel en contextos .NET.

Utilizar IronXL en lugar de Microsoft Interop tiene varias ventajas, como:

  • Rendimiento y eficiencia de recursos: En comparación con Microsoft Interop, que depende de que la aplicación Excel esté instalada en el ordenador, IronXL rinde mejor y utiliza menos recursos porque no depende de la aplicación Excel.
  • Facilidad de uso y simplicidad: IronXL proporciona una API más fácil de usar que simplifica la lectura, escritura y manipulación de archivos Excel sin las complicaciones que conlleva Microsoft Interop.
  • Compatibilidad y dependencia: IronXL elimina las dependencias y los problemas de compatibilidad que pueden producirse con diversas versiones de Excel u Office al no requerir la instalación de Microsoft Excel en el ordenador.
  • Independencia de la plataforma: A diferencia de Microsoft Interop, que puede estar más estrechamente asociado a versiones concretas de Microsoft Office, IronXL ofrece una mayor flexibilidad y facilidad de implantación en diversos entornos y plataformas.

    Para los desarrolladores .NET que deben trabajar con archivos Excel mediante programación, IronXL suele ser la mejor opción por su facilidad de uso, velocidad y menor dependencia de instalaciones de software de terceros. Sin embargo, la decisión entre IronXL y Microsoft Interop podría verse influida por las particularidades del proyecto, la infraestructura ya existente y el nivel de experiencia del usuario con cada biblioteca.

    Al decidir entre estas opciones, tenga siempre presentes los requisitos de su aplicación. Visiteenlace para obtener más información sobre la biblioteca IronXL.

Instalación de la biblioteca IronXL

Dado que la biblioteca IronXL es necesaria para el próximo parche, instálala. Para ello, abra la consola de NuGet Package Manager y escriba el siguiente comando:

Install-Package IronWord

Cómo Manipular Un Documento Word Usando C#: Figura 6 - Instalando IronXL usando el comando de consola

Otra opción es buscar el paquete "IronXL" a través del gestor de paquetes NuGet. De esta lista de cada paquete NuGet vinculado a IronXL, podemos seleccionar el que necesitamos descargar.

Como Manipular Un Documento Word Usando C#: Figura 7 - Instalando el Paquete `IronXL.Excel` a través del Navegador

Edición de documentos de Excel con IronXL

Los datos pueden exportarse a los formatos.XLSX o.XLS con sólo unas líneas de código. El siguiente ejemplo de código fuente muestra cómo se pueden exportar datos de un archivo Excel a un formato de tabla tabular simple:

var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
Dim workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx")
Dim ws As WorkSheet = workbook.GetWorkSheet("Sheet1")
Dim address_val As String = ws ("A1").ToString()
console.writeline(address_val)
ws ("A2").Value = "Hello World"
workbook.SaveAs("export.xlsx")
'or
workbook.SaveAs("export.xls")
'or
workbook.WorkSheets (0).SaveAs("export.xls")
VB   C#

El ejemplo anterior carga un archivo Excel que ya existe llamando a la función LoadExcel, que toma como argumento la ruta y el nombre del archivo. La importación del archivo en el objeto Libro de trabajo ha finalizado. Las hojas de trabajo de Excel se cargan con la ayuda de GetWorkSheet, que nos permite cargar la hoja de trabajo utilizando el nombre de la hoja. A continuación, se utilizaba la dirección de Excel para leer el valor. Para saber más sobre la lectura de archivos Excel, haga clic enaquí.

Podemos alterar los valores de la hoja de Excel utilizando la misma URL de Excel. El documento Excel puede guardarse como un archivo XLSX o XLS utilizando la función SaveAs que ofrece el objeto 'Workbook'. Con este proceso, todo el archivo se guarda en el formato elegido.

Cómo Manipular Un Documento Word Usando C#: Figura 8 - Salida de la consola

Además, podemos elegir una determinada hoja de cálculo de Excel utilizando su valor de índice o haciendo referencia a ella por su nombre. A continuación, podemos exportar los datos de la hoja de cálculo Excel a un archivo diferente utilizando la opción SaveAs. Haga clic aquíenlace para obtener más información sobre el formateo y la exportación de archivos Excel.

Conclusión

Uno de los complementos más populares para Excel es IronXL. No depende de ninguna biblioteca externa adicional. No es necesario instalar Microsoft Excel porque es autónomo. Opera a través de multitud de canales. Esto contrasta con la biblioteca Interop, que tiene que analizar el archivo utilizando bibliotecas adicionales para editar documentos Word.

IronXL es una solución completa para cualquier proceso de programación que utilice documentos de Microsoft Excel. Cálculos, ordenación de cadenas o números, poda, adición, búsqueda y sustitución, fusión y separación, y almacenamiento de archivos son sólo algunas de las muchas operaciones disponibles. No sólo se pueden validar los datos de las hojas de cálculo, sino que también se pueden construir nuevas formas de datos de celdas. Facilita la lectura y escritura de archivos, así como el manejo de datos de Excel.

Cuando IronXL fue lanzado por primera vez, costaba $749. Como alternativa, los clientes pueden optar por pagar una cuota de suscripción de un año para recibir actualizaciones de software y asistencia. IronXL ofrece seguridad contra la redistribución no autorizada, previo pago. Ir a la concesión de licencias IronXLpágina. Para saber más sobre los productos de Iron Software, consulteaquí.

< ANTERIOR
Cómo leer un archivo de Word con C#
SIGUIENTE >
Cómo crear un documento de Word en C#

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

Descarga gratuita de NuGet Descargas totales: 7,052 Ver licencias >