Ajouter une méthode de format dans xlsxwriter plusieurs formats
Dec 01 2020
J'essaye le code suivant et cela fonctionne bien. Mais je me demande s'il existe une approche courte pour traiter la fonction d'ajout de format qui est présente dans le package de xlsxwriter. Voici le code pour plus de clarification
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()
Dans le code, j'ai ces lignes d'ajout de format
myformat = workbook.add_format()
myformat.set_reading_order(2)
myformat.set_align('center')
myformat.set_align('vcenter')
Ma question: comment raccourcir de telles lignes pour être plus flexible et pour pouvoir ajouter de plus en plus de formats de manière simple?
Réponses
2 buran Dec 01 2020 at 09:22
Vous pouvez transmettre des propriétés sous forme de dict à add_format()
.
my_format = workbook.add_format({'reading_order':2, 'align':'center', 'valign':'vcenter'})
Vous pouvez en lire plus ici
EDIT: exemple de travail complet, avec bordure
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)