如何用Python提取含富文本的Excel单元格格式(加粗、斜体等)?
提取Excel富文本单元格的局部字体格式
你遇到的问题根源在于:直接通过cell_obj.font.bold只能获取单元格的默认字体样式,但富文本单元格内的文本是分段设置格式的,每个分段的样式需要从rich_text属性中读取。
正确实现方法
openpyxl会把富文本单元格的内容解析为RichText对象,每个分段的文本和对应字体样式都包含在这个对象里。你需要遍历每个分段,分别检查它们的加粗、斜体属性:
import openpyxl path = "doc.xlsx" wb_obj = openpyxl.load_workbook(path) sheet_obj = wb_obj.active cell_obj = sheet_obj.cell(row=5, column=5) # 遍历富文本的每个分段 for segment in cell_obj.value: print(f"文本内容: {segment.text}") print(f"是否加粗: {segment.font.bold}") print(f"是否斜体: {segment.font.italic}") print("---")
代码说明
- 若单元格是富文本格式,
cell_obj.value会是RichText类型,包含多个分段元素 - 每个分段的
text属性对应该段内容,font属性包含该段的字体样式(bold、italic等) - 若单元格不是富文本,
cell_obj.value为普通字符串,此时可直接用cell_obj.font获取整体样式
内容的提问来源于stack exchange,提问作者Jackp
相关产品推荐
相关产品推荐

