如何使用Openpyxl为DataFrame导出的Excel设置表头格式?
实现方法
你需要额外导入openpyxl.styles里的Alignment类用于配置自动换行属性,再定义对应的字体、对齐规则应用到表头单元格即可,完整修改后的代码如下:
from openpyxl.styles import Font, PatternFill, Alignment from openpyxl import Workbook wb = Workbook() ws = wb.active # 预先定义表头通用样式 # 黑色粗体字体 header_font = Font(bold=True, color="000000") # 开启自动换行的对齐规则 header_alignment = Alignment(wrap_text=True) # 原有表头背景色设置(注意你原代码混用了ws和sheet变量,这里统一为ws) ws['A1'].fill = PatternFill(bgColor="808080", fill_type = "solid") # 灰色 ws['B1'].fill = PatternFill(bgColor="FFC0CB", fill_type = "solid") # 粉色 ws['C1'].fill = PatternFill(bgColor="FFC0CB", fill_type = "solid") # 粉色 ws['D1'].fill = PatternFill(bgColor="add8e6", fill_type = "solid") # 蓝色 ws['E1'].fill = PatternFill(bgColor="add8e6", fill_type = "solid") # 蓝色 # 批量给所有表头单元格应用字体和自动换行样式 header_cell_list = ["A1", "B1", "C1", "D1", "E1"] for cell_addr in header_cell_list: ws[cell_addr].font = header_font ws[cell_addr].alignment = header_alignment # 后续写入数据、保存文件的逻辑照常编写即可
参数说明
Font(bold=True, color="000000"):bold参数控制是否为粗体,color参数传入十六进制颜色码,000000对应纯黑色Alignment(wrap_text=True):wrap_text参数设为True即可开启单元格内容自动换行- 提前定义公共样式再批量应用,相比逐个单元格重复设置代码更简洁,后续修改样式也更高效
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

