Agregar método de formato en múltiples formatos xlsxwriter
Dec 01 2020
Estoy probando el siguiente código y funciona bien. Pero me pregunto si hay un enfoque corto para lidiar con la función de agregar formato que está en el paquete de xlsxwriter. Aquí está el código para mayor aclaración.
import pandas as pd
import xlsxwriter
writer = pd.ExcelWriter('pandas_excel.xlsx', engine='xlsxwriter')
new_df.to_excel(writer, sheet_name='Sheet1')
workbook = writer.book
format_right_to_left = workbook.add_format()
format_right_to_left.set_reading_order(2)
myformat = workbook.add_format()
myformat.set_reading_order(2)
myformat.set_align('center')
myformat.set_align('vcenter')
worksheet = writer.sheets['Sheet1']
worksheet.right_to_left()
worksheet.set_column('B:G', 12, myformat)
worksheet.set_column('A:A', 16, myformat)
writer.save()
writer.close()
En el código tengo esas líneas de agregar formato
myformat = workbook.add_format()
myformat.set_reading_order(2)
myformat.set_align('center')
myformat.set_align('vcenter')
Mi pregunta, ¿cómo acortar esas líneas para ser más flexibles y poder agregar más y más formatos de una manera fácil?
Respuestas
2 buran Dec 01 2020 at 09:22
Puede pasar propiedades como un dictado a add_format()
.
my_format = workbook.add_format({'reading_order':2, 'align':'center', 'valign':'vcenter'})
Puedes leer más aquí
EDITAR: ejemplo de trabajo completo, con borde
import pandas as pd
import xlsxwriter
data = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=data)
with pd.ExcelWriter('pandas_excel.xlsx', engine='xlsxwriter') as writer:
df.to_excel(writer, sheet_name='Sheet1')
workbook = writer.book
my_format = workbook.add_format({'reading_order':2, 'align':'center', 'valign':'vcenter', 'border':1})
worksheet = writer.sheets['Sheet1']
worksheet.set_column('B:G', 12, my_format)
worksheet.set_column('A:A', 16, my_format)