使用Python将文本写入Excel单元格,但在单个单元格中使用不同格式

0 投票
1 回答
44 浏览
提问于 2025-04-12 23:43

我们怎么把两个格式不同的字符串(比如一个是黑色,另一个是红色)合并到Excel表格的一个单元格里,使用Python代码来实现呢?

from openpyxl import Workbook
from openpyxl.styles import Font

# Create a new Excel workbook
workbook = Workbook()
worksheet = workbook.active

# Write "Hello" in black
cell_hello = worksheet.cell(row=1, column=1)
cell_hello.value = "Hello"
cell_hello.font = Font(color="000000")  # Black font color

# Write "world" in red
cell_world = worksheet.cell(row=1, column=2)
cell_world.value = "world"
cell_world.font = Font(color="FF0000")  # Red font color

# Save the workbook
workbook.save(filename="../hello_world.xlsx")

不过,怎么才能把这些数据写入到一个单元格里呢?

1 个回答

3

你可以使用富文本来进行操作:

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

wb = Workbook()
ws = wb.active

def fn(t, rt, c, sep=" ", **inf_kw):
    return CellRichText(
        [t + sep, TextBlock(InlineFont(color=c, **inf_kw), rt)]
    )

ws["A1"] = fn("Stack", "Overflow", "FFA500", b=True)

wb.save("output.xlsx")

输出结果:

在这里输入图片描述

撰写回答