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

如何在Pandas导出的Excel单元格内控制文本颜色或字体粗细?

实现Pandas生成单元格内带局部样式的Excel表格

可以实现,但Pandas本身不支持直接设置单元格内的局部文本样式,需要配合xlsxwriter或openpyxl这类Excel写入引擎,通过它们的富文本API来完成。你之前用的终端ANSI控制字符(比如\033[;1m)仅在终端环境生效,Excel无法识别,必须使用Excel原生的富文本格式。

方法1:使用xlsxwriter引擎

xlsxwriter支持直接创建富文本格式的单元格内容,示例代码如下:

import pandas as pd

# 创建示例数据
df = pd.DataFrame({'备注': ['占位文本']})

# 初始化ExcelWriter,指定引擎为xlsxwriter
with pd.ExcelWriter('富文本示例.xlsx', engine='xlsxwriter') as writer:
    df.to_excel(writer, sheet_name='Sheet1', index=False)
    workbook = writer.book
    worksheet = writer.sheets['Sheet1']

    # 定义不同样式格式
    bold_format = workbook.add_format({'bold': True})
    blue_format = workbook.add_format({'font_color': '#0000FF'})

    # 构建富文本内容:普通文本+粗体文本+蓝色文本+普通文本
    rich_text = [
        '普通文本,',
        {'text': '这是粗体重要内容', 'format': bold_format},
        ',',
        {'text': '这是蓝色高亮内容', 'format': blue_format},
        ',此部分则不是'
    ]

    # 将富文本写入A2单元格(对应df的第一行数据)
    worksheet.write_rich_string(1, 0, *rich_text)

方法2:使用openpyxl引擎

openpyxl通过RichText对象实现单元格内局部样式,示例代码如下:

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font
from openpyxl.cell.rich_text import RichText, InlineFont

# 创建示例数据并写入Excel
df = pd.DataFrame({'备注': ['占位文本']})
df.to_excel('富文本示例_openpyxl.xlsx', sheet_name='Sheet1', index=False)

# 加载已写入的Excel文件
wb = load_workbook('富文本示例_openpyxl.xlsx')
ws = wb['Sheet1']

# 定义不同样式的字体
bold_font = Font(bold=True)
blue_font = Font(color='0000FF')

# 构建富文本内容
rich_text = RichText(
    '普通文本,',
    InlineFont('这是粗体重要内容', font=bold_font),
    ',',
    InlineFont('这是蓝色高亮内容', font=blue_font),
    ',此部分则不是'
)

# 赋值给A2单元格
ws['A2'] = rich_text

# 保存文件
wb.save('富文本示例_openpyxl.xlsx')

两种方法都能实现单元格内部分文本的样式控制,可根据使用习惯选择对应引擎。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:25:08