1 回答
TA贡献1775条经验 获得超8个赞
根据文档,“Pandas 使用默认单元格格式编写数据帧标题。由于它是一种单元格格式,因此无法使用 set_row() 覆盖它。如果您希望使用自己的标题格式,那么最好的方法是转关闭 Pandas 的自动标头并编写您自己的标头。”。解决方案是在调用中包含header=False并避免复制标题并将第一行留空,然后遍历标题以粘贴列值和您喜欢的格式。startrow=1to_excel
使用您的代码的完整示例:
import pandas as pd
import numpy as np
np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
axis=1)
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
workbook = writer.book
worksheet = workbook.add_worksheet('Summary')
writer.sheets['Summary'] = worksheet
# format = workbook.add_format({'bg_color': '#21AD25'})
# worksheet.set_row(0, cell_format= format) # set the color of the first row to green
df.to_excel(writer, sheet_name='Summary', index=False, startrow=1, header=False)
# Add a header format.
header_format = workbook.add_format({
'bg_color': '#21AD25', # your setting
'bold': True, # additional stuff...
'text_wrap': True,
'valign': 'top',
'align': 'center',
'border': 1})
# Write the column headers with the defined format.
for col_num, value in enumerate(df.columns.values):
worksheet.write(0, col_num + 1, value, header_format)
writer.save()
添加回答
举报