You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用openpyxl在单个Excel单元格内为不同文本设置不同字号

同单元格差异化字体设置实现方案

完全可以实现。你当前通过给单元格font属性直接赋值的写法,仅支持给整个单元格配置统一字体样式,要实现同单元格内不同文本段的字号差异化设置,需要使用openpyxl的富文本能力。

前置要求

使用该功能需要保证你的openpyxl版本不低于3.1.0,低版本无原生富文本分段样式支持。

实现逻辑

通过CellRichText构造富文本对象,用TextBlock给每段需要单独设置样式的文本绑定独立的InlineFont内联样式,再将富文本对象赋值给单元格即可,不需要额外给单元格设置全局font属性。

完整示例代码

from openpyxl import Workbook
from openpyxl.cell.rich_text import TextBlock, CellRichText
from openpyxl.cell.text import InlineFont

wb = Workbook()
sheet = wb.active

# 分段设置样式:Apple为10号字,Banana为20号字,中间空格保留默认样式
sheet['A1'].value = CellRichText(
    TextBlock(InlineFont(sz=10), 'Apple'),
    ' ',
    TextBlock(InlineFont(sz=20), 'Banana')
)

wb.save('test123.xlsx')

注意事项

  • 不要给已设置富文本的单元格直接赋值全局Font对象,否则会覆盖所有分段样式,单元格会变回统一字体格式
  • InlineFont的字号参数名为sz,和全局字体类Font使用的size参数名不同,配置时不要写错
  • 除字号外,你还可以给不同TextBlock绑定的InlineFont单独设置字体名、颜色、加粗、斜体、下划线等样式,实现复杂的文本混排效果

内容的提问来源于stack exchange,提问作者Shihau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:12:52