I use the .to_excel method of pandas to write a DataFrame as an Excel workbook. This works nice even for multi-index DataFrames as index cells become merged. When using the
The following approach allows me to use xlsxwriter formatting on the dataframe index and column names (though I can't guarantee it's validity):
import pandas as pd
import xlsxwriter as xl
# remove pandas header styles
# this avoids the restriction that xlsxwriter cannot
# format cells where formatting was already applied
pd.core.format.header_style = None
# write dataframe to worksheet
writer = pd.ExcelWriter(sumfile, engine='xlsxwriter')
df.to_excel(writer, sheet_name='test')
# create desired xlsxwriter formats
workbook = writer.book
worksheet = writer.sheets['test']
header = workbook.add_format({'bold': True})
index = workbook.add_format({'align': 'left'})
# apply formats to header and index
worksheet.set_row(0, None, header)
worksheet.set_column(0,0, None, index)