Herramientas
Automatización de documentos: Excel y XML
Scripts para limpiar listados de Excel con duplicados y para convertir XML a DOCX: el trabajo aburrido, resuelto.

Hay trabajo que nadie contrata pero todo el mundo necesita: limpiar listados y convertir documentos. Estas dos herramientas nacen exactamente de ahí, y ninguna tiene nada de brillante: resuelven un trabajo aburrido y punto.
Los duplicados del Excel
El primer caso: listados de usuarios en Excel con duplicados, porque la misma persona se había registrado con el mismo correo más de una vez. A mano eran horas; con pandas, una línea. Hice un pequeño programa con interfaz gráfica: abres el fichero, eliges por qué columnas quieres detectar los duplicados —el correo, normalmente— y genera la tabla limpia. La primera versión funcionaba, pero la lógica y la interfaz estaban mezcladas y cada cambio era una aventura. La segunda versión separó bien las funciones de la GUI y añadió un requirements.txt, que es lo que hace que cualquiera la pueda ejecutar sin preguntarte nada.
Del XML al Word, con estilos de InDesign
La segunda herramienta tiene más historia. Trabajaba con un GPT personalizado que generaba contenido en XML, y ese XML tenía que acabar siendo un documento de Word con estilos de carácter y de párrafo que InDesign reconociera al importarlo. La clave es un fichero de configuración donde cada campo del XML se mapea a un estilo: a la izquierda eliges el campo y a qué estilo va —si es de párrafo o de carácter—, a la derecha eliges los ficheros, la carpeta de destino y el nombre del documento final.
La primera versión destapó un problema que no había previsto: cuando el XML llegaba con los campos en un orden distinto, el resultado se rompía. Tuve que tratar el orden como algo que no puedes asumir nunca, y añadí un camino específico para los ficheros que venían desordenados.
Empaquetar para que lo use todo el mundo
Escribir el script fue la mitad; la otra mitad fue que pudiera ejecutarlo gente que no sabe qué es un entorno virtual. Con PyInstaller lo compilé como aplicación, y para cubrir Mac con chip M1 y Mac Intel monté un entorno conda x86_64 aparte para hacer la compilación cruzada. Tres ficheros de especificaciones: M1, Intel y Windows.
Qué haría distinto hoy
Empezaría por el fichero de configuración y por las validaciones, no por la interfaz: validar el orden de los campos y la estructura del XML antes de convertir debería haber sido el primer paso, no un parche después. Y pensaría en el empaquetado desde el primer día, porque una herramienta que nadie más que tú puede ejecutar se queda a medias. Aun así, entre las dos desaparecieron unas cuantas horas semanales de trabajo que no quería volver a hacer nunca más.