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

如何为字符串中间部分设置样式?(支持Openpyxl或其他库)

如何为Excel单元格内字符串的中间部分设置样式

当然可以实现,用Openpyxl的**富文本(RichText)**就能给单元格内的部分文本单独设置样式,不用给整个单元格统一应用字体。

用Openpyxl实现的示例代码:

from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.cell.text import InlineFont
from openpyxl.cell.rich_text import RichText

wb = Workbook()
ws = wb.active

# 定义不同的字体样式
normal_font = InlineFont(name='微软雅黑', size=11)
bold_spec_font = InlineFont(name='Consolas', size=9, bold=True)

# 构建富文本:普通文本 + 带样式的中间文本 + 普通文本
rich_text = RichText(
    "前缀文本",
    ("需要特殊样式的中间内容", bold_spec_font),
    "后缀文本"
)

# 将富文本写入单元格
ws['A2'].value = rich_text

wb.save("富文本示例.xlsx")

用XlsxWriter实现的方法(备选库)

如果换用XlsxWriter,也可以通过write_rich_string快速实现:

import xlsxwriter

wb = xlsxwriter.Workbook('富文本示例.xlsx')
ws = wb.add_worksheet()

# 定义格式
spec_format = wb.add_format({'font_name': 'Consolas', 'font_size': 9, 'bold': True})
normal_format = wb.add_format({'font_name': '微软雅黑', 'font_size': 11})

# 写入富文本字符串
ws.write_rich_string('A2', normal_format, '前缀文本', spec_format, '需要特殊样式的中间内容', normal_format, '后缀文本')

wb.close()

你之前的代码是给整个单元格应用统一字体,所以无法实现部分文本的样式区分,改用富文本就能解决这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:48:21