如何使用Python-docx单独修改Word表格指定单元格的字体颜色?
问题原因与解决方法
你遇到的问题核心在于:Normal是Word的全局基础样式,表格内的单元格文本默认都继承该样式。当你反复修改document.styles['Normal'].font.color时,所有使用这个样式的文本都会同步更新,导致最后一次设置的红色覆盖了之前的蓝色,所以所有文本都变成红色。
修正后的代码
直接针对单个单元格的段落设置字体颜色,而非修改全局样式:
import docx from docx.shared import RGBColor # 创建文档与表格 document = docx.Document() table = document.add_table(rows=2, cols=2) table.style = 'Table Grid' # 设置左上单元格为蓝色 cell_blue = document.tables[0].rows[0].cells[0] cell_blue.text = "Blue" # 定位单元格内的段落,单独设置字体颜色 cell_blue.paragraphs[0].font.color.rgb = RGBColor(50, 0, 255) # 设置右下单元格为红色 cell_red = document.tables[0].rows[1].cells[1] cell_red.text = "Red" cell_red.paragraphs[0].font.color.rgb = RGBColor(255, 0, 0) document.save('result.docx')
执行效果
运行后,左上单元格的“Blue”显示蓝色,右下单元格的“Red”显示红色,其余单元格保持空白,完全符合你期望的效果。
内容的提问来源于stack exchange,提问作者wasicat
相关产品推荐
相关产品推荐

