Xlsxwriter: format three cell ranges in same worksheet

Viewed 2447

I would like to format A1:E14 as US Dollars, F1:K14 as percentages and A15:Z1000 as US Dollars. Is there a way to do this in XlsxWriter?

I know how to format full columns as Dollars/Percentages, but I don't know how to format parts of columns -- whatever I do last will overwrite Columns F:K.

Data is starting in pandas so happy to solve the problem there. The following does not seem to work:

sheet.set_column('A1:E14', None, money_format)

More Code:

with pd.ExcelWriter(write_path) as writer:
    book = writer.book
    money_fmt = book.add_format({'num_format': '$#,##0'})
    pct_fmt = book.add_format({'num_format': '0.00%'})
    # call func that creates a worksheet  named total with no format
    df.to_excel(writer, sheet_name='Total', startrow=0)
    other_df.to_excel(writer, sheet_name='Total', startrow=15)
    writer.sheets['Total'].set_column('A1:E14',20, money_fmt)
    writer.sheets['Total'].set_column('F1:K14',20, pct_fmt)
    writer.sheets['Total'].set_column('F15:Z1000', 20, money_fmt)
1 Answers
Related