USO DE IRONXL FOR PYTHON

Generar documentos Word a partir de datos de Excel en Python

Chaknith Bin
Chaknith Bin
15 de diciembre, 2024
Compartir:

Introducción

Generar plantillas de Word a partir de hojas de cálculo de Excel usando Python ofrece numerosos beneficios que pueden mejorar significativamente la eficiencia, la precisión y la presentación en diversos contextos profesionales y personales. Al aprovechar la automatización, la personalización y la integridad de los datos, los profesionales pueden asegurar que sus documentos de Word sean herramientas de comunicación efectivas que transmitan información esencial de manera clara y precisa. Una biblioteca que puede convertir Microsoft Excel a Microsoft Word es el paquete de Python IronXL de Iron Software y la biblioteca python-docx.

Este artículo examinará los pasos necesarios para generar documentos de Word a partir de archivos de Excel.

Cómo generar un documento de Word a partir de datos de Excel en Python

  1. Crea un archivo Python llamado excelToWord.py.

  2. Agrega los paquetes IronXL y python-docx.

  3. Cree o agregue un archivo Excel a la carpeta del proyecto.

  4. Leer documentos de Excel utilizando IronXL.

  5. Crea un documento de Word e inserta datos de Excel usando python-docx.

¿Qué es IronXL?

IronXL for Python es una robusta biblioteca desarrollada por Iron Software que permite a los desarrolladores crear, leer y editar archivos de Excel (XLS, XLSX y CSV) en proyectos de Python. A continuación, se presentan algunas características clave y beneficios de usar IronXL:

Características principales

  1. Sin dependencia de Excel: IronXL no requiere la instalación de Microsoft Excel en su servidor, lo que lo hace ideal para entornos de servidor sin Excel.

  2. API intuitiva: IronXL ofrece una API natural e intuitiva para trabajar con archivos de Excel, lo que facilita su integración en tus proyectos de Python.

  3. Soporte para múltiples formatos: IronXL es compatible con varios formatos de archivo Excel, incluidos XLS, XLSX, CSV y TSV.

  4. Estilo de Celda: Puede dar estilo a las celdas con diferentes fuentes, tamaños, fondos, bordes y formatos numéricos.

  5. Manejo de Fórmulas: IronXL puede trabajar con fórmulas de Excel y recalcularlas cada vez que se edita una hoja.

  6. Compatibilidad multiplataforma: IronXL funciona en Windows, macOS, Linux, Docker, Azure y AWS.

¿Qué es python-docx?

python-docx es una biblioteca de Python que crea, modifica y trabaja con documentos de Microsoft Word como archivos `.docx`. Proporciona una API sencilla para interactuar con documentos de Word, permitiéndole realizar tareas como agregar texto, dar formato, insertar tablas e imágenes, y más.

Características principales

1. Creación de Documentos

Puedes generar documentos de Word desde cero y añadir contenido, incluyendo párrafos, tablas, encabezados y más. Este paquete también se puede utilizar para editar documentos individuales.

2. Manipulación de Texto

Agregar y modificar párrafos de texto. Formatee el texto (por ejemplo, negrita, cursiva, subrayado, etc.) utilizando "ejecuciones" (partes de texto con diferentes estilos dentro de un párrafo). Agregar y dar estilo a los encabezados de varios niveles.

3. Añadiendo Tablas

Crear tablas con un número especificado de filas y columnas. Acceder y modificar celdas individuales en una tabla.

4. Listas

Cree listas con viñetas o numeradas con estilos predefinidos.

5. Trabajar con estilos

Aplica estilos predefinidos como "Encabezado 1", "Normal", etc. También puedes definir y aplicar estilos personalizados a párrafos o texto.

6. Inserción de Imágenes

Insertar imágenes en el documento en ubicaciones específicas. Puedes redimensionar imágenes especificando su ancho y altura.

Requisitos previos

Antes de sumergirnos en el código, asegúrate de tener los siguientes requisitos previos:

  1. Python Instalado: Asegúrate de tener Python instalado en tu máquina. Puedes descargarlo desde el sitio web oficial de Python.

  2. IronXL Instalado: Necesitas instalar el paquete IronXL. Puedes hacer esto usando pip.

  3. python-docx Instalado: Necesitas instalar el paquete python-docx. Puedes hacer esto usando pip.

  4. Archivo de Excel: Crear un archivo de Excel de muestra con datos.

Paso 1: Crea un archivo Python llamado excelToWord.py

Abre tu IDE favorito como Visual Studio Code y crea un archivo llamado excelToWord.py

Cómo generar un documento Word a partir de datos de Excel en Python: Figura 1 - Generación de documento Excel

Paso 2: Agregar el paquete de IronXL

Utiliza Pip para instalar los paquetes IronXL y python-docx.

pip install IronXL python-docx

Paso 3: Crear o agregar un archivo Excel a la carpeta del proyecto

Copiar archivo Excel de muestra a la carpeta de código. El archivo contiene los siguientes datos.

Cómo generar un documento de Word a partir de datos de Excel en Python: Figura 2 - Ejemplo de Excel

Paso 4: Lea el documento de Excel usando IronXL

Usando IronXL carga el documento de Excel y lee todas las celdas utilizando el siguiente código.

import ironxl
from docx import Document
ironxl.License.LicenseKey = "your license"
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# read data from excel
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)
        row_data.append(cell_value)
    data.append(row_data)
PYTHON

Paso 5: Crear un documento de Word e insertar datos de Excel usando python-docx

El proceso de generación de documentos Word implica crear un documento Word que se lee a partir de datos previos de Excel.

doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)
doc.save("sample.docx")
PYTHON

El código completo para generar documentos de Word está aquí.

# Word documents from Excel data
import ironxl
from docx import Document
ironxl.License.LicenseKey = "your license"
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# read data from excel
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)
        row_data.append(cell_value)
    data.append(row_data)
# document generation process
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)
doc.save("sample.docx") # save as Microsoft Word document
PYTHON

Código Explicación

Este script de Python realiza dos tareas principales.

Lectura de datos desde un archivo de Excel usando IronXL

  • El script comienza configurando una licencia para la biblioteca IronXL, que se utiliza para manejar archivos Excel en Python.
  • A continuación, carga un archivo de Excel (sample.xlsx) y selecciona la primera hoja de cálculo del archivo.
  • El script lee los datos de la hoja de cálculo, iterando a través de todas las filas y columnas. Recoge los valores de cada celda en una lista 2D (datos), donde cada fila en la hoja de Excel corresponde a una sublista dentro de los datos.
  • Los valores de las celdas se imprimen en la consola a medida que se leen.

2. Creación de un Documento de Word Usando python-docx

  • Se crea un nuevo documento de Word utilizando la biblioteca python-docx.
  • El script agrega un título ("Exportación de Datos de Excel Usando Python Docx") en la parte superior del documento utilizando un encabezado.
  • A continuación, crea una tabla en el documento, donde la primera fila de la tabla contiene los encabezados de la primera fila de la hoja de Excel, y las filas siguientes contienen los datos correspondientes del archivo de Excel.
  • Finalmente, el documento de Word se guarda como sample.docx.

    El script lee datos de un archivo Excel (sample.xlsx), los procesa y exporta los datos a una tabla en un nuevo documento de Word (sample.docx). La primera fila de la hoja de Excel se utiliza como encabezados de la tabla, y cada fila de datos de la hoja de Excel se agrega al documento de Word como una fila en la tabla.

Salida

Cómo generar un documento Word a partir de datos de Excel en Python: Figura 3 - Excel a Word

Archivo de Word

Cómo generar un documento Word a partir de datos de Excel en Python: Figura 4 - Formato de documento Word

IronXL License (Prueba Disponible)

IronXL funciona con un archivo de licencia válido adjunto al código. Los usuarios pueden obtener fácilmente una licencia de prueba desde la página de licencias.

Para usar la licencia, coloque la licencia en algún lugar del código como se muestra a continuación antes de utilizar la biblioteca IronXL.

ironxl.License.LicenseKey = "Your License Key"
PYTHON

Conclusión

El código de muestra demuestra una manera efectiva de leer datos de un archivo Excel utilizando IronXL y luego exportar esos datos a un documento Word usando python-docx. El proceso consta de dos pasos principales:

  1. Extrayendo datos de Excel: El script carga un archivo de Excel y extrae los datos de su primera hoja de trabajo. Itera a través de las filas y columnas para recopilar los valores de las celdas en una lista, que se puede manipular o guardar fácilmente.

  2. Creando y Rellenando un Documento de Word: Utilizando la biblioteca python-docx, el script crea un nuevo documento de Word, añade un título y formatea los datos extraídos de Excel en una tabla dentro del documento de Word. Coloca automáticamente la primera fila de datos de Excel como encabezados y las filas restantes como datos de la tabla.

    Este enfoque permite una transferencia de datos fluida de Excel a Word, lo cual puede ser útil para tareas como la generación de informes, exportación de datos o automatización de documentos. La combinación de IronXL para el manejo de Excel y python-docx para la creación de documentos de Word proporciona una solución potente para trabajar con estos formatos de archivo en Python.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Cómo crear un archivo Excel en Python
SIGUIENTE >
Cómo eliminar una hoja de cálculo de un archivo Excel en Python

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

Ver licencias >