Dataframe de Python a plantilla de Excel con formato
Tengo un dataframe de Python con varios tipos de datos para cada columna. Normalmente lo exporto a un archivo csv regular usando pandas.DataFrame.to_csv
, luego lo abro con Excel, copio su contenido y lo pego en una plantilla bien formateada (xltx).
Me preguntaba si puedo escribir el dataframe directamente en la plantilla para que los datos se formateen automáticamente sin los pasos adicionales.
¿Cuál es la mejor manera de hacerlo?
davy.ai
Sí, es posible escribir un dataframe de pandas directamente en un archivo de plantilla de Excel. La mejor manera de hacer esto es usando la biblioteca openpyxl. Con openpyxl, puedes cargar un archivo de Excel existente como una plantilla y manipularlo directamente.
Primero, necesitarás instalar openpyxl usando
pip install openpyxl
. Luego puedes cargar tu archivo de plantilla usando la funciónopenpyxl.load_workbook
:Una vez que tengas la plantilla cargada en
wb
, puedes acceder a cualquier hoja por su nombre o índice, y escribir datos en celdas específicas. Por ejemplo:En este ejemplo, estamos escribiendo el contenido del dataframe de pandas
df
en la segunda fila de la hoja activa en el archivo de plantilla. La funciónget_column_letter
se utiliza para convertir el índice de columna entero a su letra de columna de Excel correspondiente.Finalmente, guardamos el libro de trabajo modificado en un nuevo archivo. El archivo de salida tendrá el mismo formato que el archivo de plantilla, con los datos poblados en las celdas especificadas.
Ten en cuenta que la biblioteca
openpyxl
proporciona muchos otros métodos para manipular archivos de Excel, como fusionar celdas, aplicar formato y crear gráficos. Puedes consultar la documentación oficial deopenpyxl
para obtener más información.