openpyxl合并单元格文本未居中问题求助
合并单元格文本无法居中的解决办法
你遇到的问题大概率是对齐样式未正确配置,或是合并单元格后的格式优先级问题,以下是修正方案:
1. 确保对齐样式正确实例化
首先检查title_alignment是否是openpyxl.styles.Alignment的有效实例,必须明确指定水平和垂直居中:
from openpyxl.styles import Alignment # 正确创建居中对齐对象 title_alignment = Alignment(horizontal='center', vertical='center')
2. 修正后的完整代码
将对齐配置与合并操作结合,确保样式设置在合并之后:
from openpyxl.styles import Font, PatternFill, Alignment # 初始化所需样式 bold_font = Font(bold=True) title_fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid") title_alignment = Alignment(horizontal='center', vertical='center') # 先合并单元格 ws.merge_cells('A1:Q1') # 设置标题内容及样式 ws['A1'] = tableTitle title_cell = ws['A1'] title_cell.font = bold_font title_cell.fill = title_fill title_cell.alignment = title_alignment # 可选:设置行高,让垂直居中效果更直观 ws.row_dimensions[1].height = 25
3. 额外排查点
- 检查是否有后续代码覆盖了A1单元格的对齐样式
- 若从模板加载工作簿,确认模板中A1:Q1区域的原有格式未冲突
- 升级
openpyxl到最新版本,旧版本可能存在合并单元格对齐的bug:
pip install --upgrade openpyxl
内容的提问来源于stack exchange,提问作者Sakura NoTamashi
相关产品推荐
相关产品推荐

