部分字体标红,不知道如何实现
问题描述:
本小节练习中的部分字体标红,不知道如何实现,如下为我的作业,请老师指导下
相关代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | # 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 循环再填充设置好的其它汉字。我们中间还有正常的不设置颜色的内容,只能按顺序设置红色字体,再设置正常的字体,不能使用循环。修改代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | # 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全能工程师
- 参与学习 人
- 提交作业 16329 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧