xlsxwriter複数フォーマットでフォーマットメソッドを追加

Dec 01 2020

私は次のコードを試していますが、うまく機能しています。しかし、xlsxwriterのパッケージにあるフォーマットの追加機能に対処するための短いアプローチがあるかどうか疑問に思っています。これがより明確にするためのコードです

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()

コードには、フォーマットを追加する行があります

myformat = workbook.add_format()
myformat.set_reading_order(2)
myformat.set_align('center')
myformat.set_align('vcenter')

より柔軟に、そしてより多くのフォーマットを簡単な方法で追加できるように、そのような行をどのように短縮するのかという私の質問はありますか?

回答

2 buran Dec 01 2020 at 09:22

プロパティをdictとしてに渡すことができますadd_format()

my_format = workbook.add_format({'reading_order':2, 'align':'center', 'valign':'vcenter'})

あなたはここでもっと読むことができます

編集:ボーダー付きの完全な実例

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)