部分字体标红,不知道如何实现
问题描述:
本小节练习中的部分字体标红,不知道如何实现,如下为我的作业,请老师指导下
相关代码:
# coding:utf-8 from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.shared import Pt,RGBColor from docx.oxml.ns import qn doc = Document() # 添加标题,标题级别0,并将标题居中 title = doc.add_heading('慕课网是谁',0) title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER style = doc.styles['Normal'] style.font.name = '微软雅黑' style.element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑') # 添加正文段落,微软雅黑,15号字体,其中三个学者标红 # 1.添加内容 p = doc.add_paragraph('我们是IT教育行业的造梦者,也是前沿技术内容的创造者和传播者!\n') p.add_run('\n体系课:\n\n') list_1 = ['1.Python全栈工程师','2.Java工程师','3.前端工程师'] for i in range(3): p.add_run(list_1[i]) p.add_run('\n') print(p.text) # 2.设置字体 p.style.font.name = '微软雅黑' p.style.font.size = Pt(15) # 3.设置部分字体红色??? list_2 = ['造梦者','创造者','传播者'] para_1 = doc.paragraphs[0].text for i in list_2: if i in para_1: run = para_1.add_run(i) run.style.font.color.rgb = RGBColor(255,0,0) # 分页,并添加标题,标题级别0 doc.add_page_break() doc.add_heading('学生信息',0) # 添加表格,三行四列,并将2名成员信息填入 r=3 c=4 table = doc.add_table(r,c) list_3 = [ ('序号','姓名','年龄','身高'), ('1','张三','20','174'), ('2','李四','19','167') ] for i in range(r): row_cells = table.rows[i].cells for j in range(c): row_cells[j].text = list_3[i][j] # 保存文件并命名为demo.docx doc.save(r'C:\Users\Clip\Desktop\demo.docx')
13
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小猿
2023-10-19 18:00:15
同学,你好!字体不像是字符串可以占位,然后使用for 循环再填充设置好的其它汉字。我们中间还有正常的不设置颜色的内容,只能按顺序设置红色字体,再设置正常的字体,不能使用循环。修改代码如下:
# coding:utf-8 from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.shared import Pt, RGBColor from docx.oxml.ns import qn doc = Document() # 添加标题,标题级别0,并将标题居中 title = doc.add_heading('慕课网是谁', 0) title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER style = doc.styles['Normal'] style.font.name = '微软雅黑' style.element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑') # 添加正文段落,微软雅黑,15号字体,其中三个学者标红 # 1.添加内容 style.font.size = Pt(15) # 添加标题,级别为0并居中显示 p= doc.add_paragraph('我们是IT教育行业的') # 在段落后面追加文本,并可设置样式 _p = p.add_run('造梦者') _p.font.color.rgb = RGBColor(255, 0, 0) p.add_run(',也是前沿技术内容的') _p = p.add_run('创造者') _p.font.color.rgb = RGBColor(255, 0, 0) p.add_run('和') _p = p.add_run('传播者') _p.font.color.rgb = RGBColor(255, 0, 0) p.add_run('!') #p = doc.add_paragraph('我们是IT教育行业的造梦者,也是前沿技术内容的创造者和传播者!\n') p.add_run('\n体系课:\n\n') list_1 = ['1.Python全栈工程师', '2.Java工程师', '3.前端工程师'] for i in range(3): p.add_run(list_1[i]) p.add_run('\n') print(p.text) # 2.设置字体 p.style.font.name = '微软雅黑' p.style.font.size = Pt(15) # 3.设置部分字体红色??? # list_2 = ['造梦者', '创造者', '传播者'] # para_1 = doc.paragraphs[0].text # for i in list_2: # if i in para_1: # run = para_1.add_run(i) # run.style.font.color.rgb = RGBColor(255, 0, 0) # 分页,并添加标题,标题级别0 doc.add_page_break() doc.add_heading('学生信息', 0) # 添加表格,三行四列,并将2名成员信息填入 r = 3 c = 4 table = doc.add_table(r, c) list_3 = [ ('序号', '姓名', '年龄', '身高'), ('1', '张三', '20', '174'), ('2', '李四', '19', '167') ] for i in range(r): row_cells = table.rows[i].cells for j in range(c): row_cells[j].text = list_3[i][j] # 保存文件并命名为demo.docx doc.save(r'C:\Users\Clip\Desktop\demo.docx')
祝学习愉快~
Python全能工程师
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星