import pandas as pd
# Dummy dataframes
= pd.DataFrame({"nombre":["Juan", "Pedro", "Diego", "LormIpsum"*10],
df "edad":[20, 30, 20, 30]})
# Save to excel XLSX file
= "ejemplo_sin_autofit.xlsx"
filename = pd.ExcelWriter(filename, engine="xlsxwriter")
excel_writer # Save the first dataframe
= "Personas"
sheet_name =sheet_name, index=False)
df.to_excel(excel_writer, sheet_name# Close the excel file
excel_writer.close()
Ancho automático en celdas de excel
python
excel
código
Como hacer que las celdas de excel tengan el ancho apropiado
Cuando creas un archivo excel con pandas, el ancho de las columnas queda fijo y eso suele ser molesto cuando tienes que revisar el contenido. Mira el siguiente ejemplo típico:
Mis archivos excel se veían como en la siguiente imagen:
Hoy aprendí una manera super simple de hacer que las columnas generen el ancho de manera dinámica. Sólo requiere usar ‘xlrxwriter’ y su metodo autofit! No funciona con openpyxl, otra buena librería para manejar excels desde python.
import pandas as pd
# Dummy dataframes
= pd.DataFrame({"nombre":["Juan", "Pedro", "Diego", "LormIpsum"*10],
df "edad":[20, 30, 20, 30]})
# Save to excel XLSX file
= "ejemplo_con_autofit.xlsx"
filename = pd.ExcelWriter(filename, engine="xlsxwriter") # Must be xlsxwriter
excel_writer # Save the first dataframe
= "Personas"
sheet_name =sheet_name, index=False)
df.to_excel(excel_writer, sheet_name# This makes the columns to be autofitted!!!
excel_writer.sheets[sheet_name].autofit() # Close the excel file
excel_writer.close()
¡El truco solo requiere una línea! Basta con acceder a la pestaña desde el ExcelWriter usando su nombre, y aplicar el método autofit.
El excel resultante es el siguiente:
Por supuesto, el truco puede aplicarse a todas las pestañas del archivo.