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)