Tres bibliotecas cubren la mayor parte de la automatización de documentos en Python: openpyxl para Excel, python-docx para Word y reportlab para la generación de PDF, comunes en flujos de trabajo de informes, exportaciones y cumplimiento.
from docx import Documentdoc = Document("template.docx")for p in doc.paragraphs: if "{{NAME}}" in p.text: p.text = p.text.replace("{{NAME}}", "Ada Lovelace")buf = BytesIO()doc.save(buf)
Cargar xlsx no confiable - Existen variantes de bombas XML y billion-laughs. Solución: límites de tamaño, escaneo de virus, análisis en un worker aislado.
Fórmulas vs valores - load_workbook devuelve fórmulas por defecto. Solución:data_only=True para valores mostrados (obsoleto hasta que Excel se abra).
Características no soportadas por python-docx - Las cabeceras/pies de página en plantillas complejas pueden fallar. Solución: simplificar la plantilla o usar plantillas docx mantenidas en Word.
Licenciamiento de fuentes de reportlab - Incrusta solo fuentes licenciadas para PDFs comerciales. Solución: usa Helvetica incorporada o TTF licenciada.
Memoria en exportaciones enormes - Crear un xlsx de un millón de filas en RAM causa OOM. Solución: CSV para datos grandes, o escrituras fragmentadas en modo write_only=True.
Localización y fechas en Excel - Excel muestra formato local; almacena ISO en los datos de origen. Solución: formatos numéricos explícitos en openpyxl.