Reputation: 771
I want to wrap the header text.
My code is as follows:
writer = pd.ExcelWriter(r'C:\data.xlsx', engine='xlsxwriter')
df.to_excel(writer, index = False, sheet_name='Sheet1')
workbook = writer.book
dformat = workbook.add_format({'text_wrap': True})
pd.io.formats.excel.header_style = None
worksheet = writer.sheets['Sheet1']
worksheet.set_row(0, None, dformat)
writer.save()
However, the first row, that is, the headers does not wrap.
How to solve it?
Furthermore, how to set a filter on a column, say, a filter of column value greater than 10?
Thank you.
Upvotes: 4
Views: 3096
Reputation: 1338
When use pandas to write the header, pandas applies their own styling.
If you want to apply your own styling to the header, you can write the data and header separately.
# Write data
writer = pd.ExcelWriter(r'C:\data.xlsx', engine='xlsxwriter')
df.to_excel(writer, index=False, sheet_name='Sheet1', header=False, startrow=1)
# Write header
for colx, value in enumerate(df.columns.values):
writer.sheets['Sheet1'].write(0, colx, value)
# Style header
header_format = workbook.add_format({'bold': True, 'text_wrap': True, 'align': 'center'})
writer.sheets['Sheet1'].set_row(0, 30, formats['text_wrap'])
Upvotes: 3