求助老师 为什么我定义的样式 字体颜色什么的都不生效呢
来源:3-7 设置Word全局样式和文本样式
_WHOAMI_
2022-04-25 11:29:42
# coding:utf-8
from docx import Document
from docx.shared import Inches, Pt, RGBColor
'''初始化Word对象'''
document = Document()
'''定义Word的全局样式'''
'''样式'''
style = document.styles['Header'] # 创建样式对象
'''字体'''
style.font.name = '微软雅黑'
'''字体颜色'''
style.font.color.rgb = RGBColor(255, 0, 0)
'''字体大小'''
style.font.size = Pt(20)
'''添加标题'''
titleobj = document.add_heading('这是第一个标题\n', level=1) # 创建标题对象
titleobj.add_run('321\n') # 在标题中追加内容
titleobj.add_run('123')
document.add_heading('这是二级标题', level=2)
'''添加段落'''
paraobj = document.add_paragraph('这是一段内容') # 创建段落对象
paraobj.add_run('这是追加的内容\n') # 追加的内容
paraobj.add_run('这个也是追加的的内容')
paraobj.add_run('我在添加一段内容')
'''添加图片'''
imageobj = document.add_picture('帅猴子.jpg', width=Inches(2), height=Inches(2)) # 创建图片对象, 并定义图片的宽和高
'''添加表格'''
tableobj = document.add_table(rows=1, cols=3) # 创建表格对象 ,这是一个一行三列的表格
cells = tableobj.rows[0].cells # 获取'行' 中的每一个单元格 表格的第一行就是rows[0] 第二行就是rows[1]
cells[0].text = 'name' # 行 的第一个单元格就是0索引 每一行的第一个单元格就是cells[0]
cells[1].text = 'age'
cells[2].text = 'sex'
username = [
['小明', '14', '男'],
['小红', '13', '女'],
['小慕', '16', '男']
]
for u in username:
row_cell = tableobj.add_row().cells
row_cell[0].text = u[0]
row_cell[1].text = u[1]
row_cell[2].text = u[2]
row_cell1 = tableobj.add_row().cells
row_cell1[0].text = '小亮'
row_cell1[1].text = '16'
row_cell1[2].text = '男'
'''分页'''
document.add_page_break()
titleobj = document.add_heading('这是第二页的标题\n', level=1) # 在第二页上添加标题
document.save('文本1.docx')相关截图:

1回答
同学,你好!
1、将document.styles['Header']改为document.styles['Normal']
2、可以使用style.element.rPr.rFonts.set(qn('w:eastAsia'), u'字体名')使设置的中文字体生效;
from docx.oxml.ns import qn

祝学习愉快~
相似问题