Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
Crea un archivo Python llamado excelToWord.py.
Agrega los paquetes IronXL y python-docx.
Cree o agregue un archivo Excel a la carpeta del proyecto.
Leer documentos de Excel utilizando 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:
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.
API intuitiva: IronXL proporciona una API natural e intuitiva para trabajar con archivos Excel, facilitando su integración en tus proyectos de Python.
Soporte para Múltiples Formatos: IronXL admite varios formatos de archivos de Excel, incluidos XLS, XLSX, CSV y TSV.
Estilo de celdas: Puedes dar estilo a las celdas con diferentes fuentes, tamaños, fondos, bordes y formatos de número.
Manejo de fórmulas: IronXL puede trabajar con fórmulas de Excel y recalcularlas cada vez que se edite una hoja.
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.
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.
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.
Crear tablas con un número especificado de filas y columnas. Acceder y modificar celdas individuales en una tabla.
Cree listas con viñetas o numeradas con estilos predefinidos.
Aplica estilos predefinidos como "Encabezado 1", "Normal", etc. También puedes definir y aplicar estilos personalizados a párrafos o texto.
Insertar imágenes en el documento en ubicaciones específicas. Puedes redimensionar imágenes especificando su ancho y altura.
Antes de sumergirnos en el código, asegúrate de tener los siguientes requisitos previos:
Python Instalado: Asegúrate de tener Python instalado en tu máquina. Puedes descargarlo desde el sitio oficial de Python.sitio web.
IronXL Installed: Necesitas instalar el paquete IronXL. Puedes hacer esto usando pip.
python-docx Instalado: Necesitas instalar el paquete python-docx. Puedes hacer esto usando pip.
Abre tu IDE favorito como Visual Studio Code y crea un archivo llamado excelToWord.py
Utiliza Pip para instalar los paquetes IronXL y python-docx.
pip install IronXL python-docx
Copiar archivo Excel de muestra a la carpeta de código. El archivo contiene los siguientes datos.
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)
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")
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
Este script de Python realiza dos tareas principales.
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.
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"
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:
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.
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.
10 productos API de .NET para sus documentos de oficina