USO DE IRONXL FOR PYTHON

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

Publicado en 15 de diciembre, 2024
Compartir:

Introducción

Generar plantillas de Word a partir de hojas de cálculo Excel usandoPythonofrece numerosos beneficios que pueden mejorar significativamente la eficiencia, precisión y 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 de esas bibliotecas que puede convertirMicrosoft Excel aMicrosoft Wordes el IronXL Paquete Python deIron Software y elpython-docx biblioteca.

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 Pythones una biblioteca robusta 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 proporciona una API natural e intuitiva para trabajar con archivos Excel, facilitando su integración en tus proyectos de Python.

  3. Soporte para Múltiples Formatos: IronXL admite varios formatos de archivos de Excel, incluidos XLS, XLSX, CSV y TSV.

  4. Estilo de celdas: Puedes dar estilo a las celdas con diferentes fuentes, tamaños, fondos, bordes y formatos de número.

  5. Manejo de fórmulas: IronXL puede trabajar con fórmulas de Excel y recalcularlas cada vez que se edite 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. Formatear texto(por ejemplo, negrita, cursiva, subrayado, etc.)usando "runs"(partes del 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. Trabajando con estilos

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

6. Insertar 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 oficial de Python.sitio web.

  2. IronXL Installed: 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: Crea 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 de Word a partir de datos de Excel en Python: Figura 1 - Generación de documento de 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 - Muestra 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.

1. Lectura de datos desde un archivo Excel usando IronXL

  • El script comienza configurando una licencia para la biblioteca IronXL, que se utiliza para gestionar archivos de Excel en Python.
  • Luego 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. Crear un documento de Word usando python-docx

  • Se crea un nuevo documento de Word utilizando la biblioteca python-docx.
  • El script añade un título ("Exportación de Datos de Excel Usando Python Docx")en la parte superior del documento utilizando un encabezado.
  • Luego, 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 posteriores 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 de Excel(sample.xlsx), lo procesa y exporta los datos en 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 de Word a partir de datos de Excel en Python: Figura 3 - Excel a Word

Archivo de Word

Cómo generar un documento de Word a partir de datos de Excel en Python: Figura 4 - Formato de documento de 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 el página de licencia.

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 ejemplo demuestra una manera efectiva de leer datos de un archivo Excel usando IronXL y luego exportar esos datos a un documento de Word usando python-docx. El proceso consta de dos pasos principales:

  1. Extracción de datos de Excel: El script carga un archivo de Excel y extrae los datos de su primera hoja de cálculo. 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. Creación y Población de un Documento de Word: Usando 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 ofrece una solución potente para trabajar con estos formatos de archivo en Python.

< ANTERIOR
Cómo crear un archivo Excel en Python
SIGUIENTE >
Cómo eliminar una hoja de cálculo de un archivo Excel en Python