Fügen Sie die Formatmethode in mehreren xlsxwriter-Formaten hinzu

Dec 01 2020

Ich versuche den folgenden Code und es funktioniert gut. Aber ich frage mich, ob es einen kurzen Ansatz gibt, um mit der Funktion zum Hinzufügen von Formaten umzugehen, die im Paket von xlsxwriter enthalten ist. Hier ist der Code zur weiteren Verdeutlichung

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

Im Code habe ich diese Zeilen zum Hinzufügen von Format

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

Meine Frage, wie man solche Zeilen verkürzt, um flexibler zu sein und auf einfache Weise immer mehr Formate hinzufügen zu können?

Antworten

2 buran Dec 01 2020 at 09:22

Sie können Eigenschaften als Diktat übergeben add_format().

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

Hier können Sie mehr lesen

EDIT: voll funktionsfähiges Beispiel mit Rand

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)