如何用Python在Excel单个单元格写入多格式拼接文本
实现单个Excel单元格内多格式文本拼接(Python + openpyxl)
要在单个单元格内实现不同字体颜色的文本,需要用到openpyxl的RichText类(配合TextBlock或直接传入样式),它支持将多个带独立样式的文本片段组合到一起,替代原代码中给整个单元格设置统一字体的方式。
修改后的完整代码
from openpyxl import Workbook from openpyxl.styles import Font from openpyxl.cell.text import RichText, TextBlock # 创建新工作簿和工作表 workbook = Workbook() worksheet = workbook.active # 创建富文本对象:黑色"Hello" + 红色"world" rich_text = RichText( TextBlock(Font(color="000000"), "Hello"), TextBlock(Font(color="FF0000"), "world") ) # 将富文本写入单个单元格 cell = worksheet.cell(row=1, column=1) cell.value = rich_text # 保存工作簿 workbook.save(filename="../hello_world.xlsx")
关键说明
RichText:作为单元格的内容值,专门用于封装多格式文本片段TextBlock:每一个TextBlock对应一段文本和它的专属样式(这里指定字体颜色),可以根据需求添加任意多个片段- 无需再给单元格整体设置
font属性,因为富文本已经包含了各部分的样式定义
简化写法
如果觉得TextBlock繁琐,也可以直接在RichText中交替传入文本字符串和样式对象,效果完全一致:
rich_text = RichText("Hello", Font(color="000000"), "world", Font(color="FF0000"))
内容的提问来源于stack exchange,提问作者Nikhil teja
相关产品推荐
相关产品推荐

