4.1word自动化(教案)-《程序设计基础(Python)》同步教学(电子工业版)

2024-08-10
| 8页
| 41人阅读
| 0人下载
普通

内容正文:

情景四 Python与办公自动化 教学课题 word自动化 序号 1 课时 2 教学手段 多媒体、板书、实训室 教学方法 讲授法、演示法、案例法 教学课型 □理论 □实训 √一体化 □( 其它 ) 教学目标 能力目标:能够按要求熟练完成word文档的创建和指定内容的写入,能够熟练掌握word文档中插入图片和表格的方法、能够创建自定义样式来优化代码、提高效率,同时熟练掌握读取word文档的方法。 知识目标:了解python-docx的特点、掌握新建、写入、读取word文档的方法。 素质目标:接受新知识、自主学习的能力 。 教学重点 插入图片和表格、样式处理 教学难点 读取word文档 教学过程设计 备注 一、复习上一节上课内容并引出本节上课内容 在上一节中我们已经学习了文件操作,能够根据实际需求熟练运用read( )、readline( )和readlines( )来读取文件,通过 write( )和writelines( )来写文件。但如果我要读取或写入的对象是常用的办公文件,这个时候又该如何操作呢?这就是我们情景四要学习的办公自动化,首先我们来学习第一节内容word自动化。 二、教学内容 1、Python-docx简介 python-docx是用于创建和修改word文档的一个 python 库,它实现word文档的自动化处理,包括批量生成word文档、在word文档中批量进行查找和替换、在word文档中插入excel表格、将word文档批量转换成PDF等,提供全套的word操作,是办公自动化中一个很实用的库。 python-docx将整个文章看作是一个Document对象、每个Document包含多个代表“段落”的Paragraph对象,存放在document.paragraphs中;每个Paragraph都有多个代表“行内元素”的Run对象,代表内容的text对象,和代表表格的tables对象。 2、 新建word文档 在python-docx中,一个word文档用一个Document对象来表示,所以我们要新建一个word文档,只需要实例化一个Document对象即可,参考代码如下。 from docx import Document #第一步:创建一个文档对象doc1 doc1 = Document() #第二步:对象调用save()保存文档 doc1.save(cqcvc.docx') print('创建文档成功!') 通过上述两个步骤的操作,程序运行后一个名称为“cqcvc.docx”文档就创建好了,通过鼠标双击就可以打开,但此时这个word文档是空的,没有任何信息。 3、写入word文档 在编辑word文档前,首先需要选中操作对象,所以把文档标题、段落信息等对象先写入到文档中,写入文档参考代码如下。 from docx import Document #读取现有的文档 doc1 =Document('cqcvc.docx') #添加文档总标题和段落 doc1.add_heading('重庆城市职业学院简介',level=0) doc1.add_paragraph('重庆城市职业学院是教育部备案,\ 重庆市人民政府举办,重庆市教委主管的全日制公办高等院校。') #添加一级标题和段落 doc1.add_heading('办学理念',level=1) doc1.add_paragraph('行大道 启大智 铸大匠 通大悟') doc1.add_heading('校训',level=1) doc1.add_paragraph('求德 求知 求技 求悟') doc1.add_heading('校风',level=1) doc1.add_paragraph('坚卓勤勉 自强奋进') doc1.add_heading('教风',level=1) doc1.add_paragraph('德润匠心 善导业精') doc1.add_heading('学风',level=1) doc1.add_paragraph('红色匠心 精益求精') #保存文档 doc1.save('cqcvc.docx') print('写入文档成功!') 上述代码运行后,双击打开“cqcvc.docx”文档,效果如下图所示。 4、插入图片和表格 在进行word文档编辑的时,经常会向文档中插入图片和表格,并且需要调整图片的高度和宽度、往表格中插入标题和各单元格添加数据等操作。如果只是插入几幅图片、几个表格当然可以直接用应用软件来完成;但是如果要处理的图片和表格数据巨大,有成长上万张图片和表格需要处理,此时首选编写程序来快速、批量完成重复操作。插入图片和表格参考代码如下,运行后的效果如下图所示。 from docx import Document from docx.shared import Pt doc1 = Document() doc1.add_heading('文档中插入图片和表格',level=0) #插入图片cqcvc.jpg doc1.add_picture('D:\\yd\\cqcvc.jpg',Pt(435),Pt(230)) print('文档插入图片成功!') #插入3行3列的表格,'Table Grid'是表格边框常用的样式 table = doc1.add_table(rows=3,cols=3,style='Table Grid') #定位第一个表格 table = doc1.tables[0] table.add_row() #在表格最底部添加一行 # 标题行单元格添加关键字 hc= table.rows[0].cells hc[0].text='学号' hc[1].text='姓名' hc[2].text='年龄' row1 = table.rows[1] row1.cells[0].text = '2022001' row1.cells[1].text = '张三' row1.cells[2].text ='18' row2 = table.rows[2] row2.cells[0].text = '2022002' row2.cells[1].text = '李四' row2.cells[2].text ='19' row3= table.rows[3] row3.cells[0].text = '2022003' row3.cells[1].text = '王五' row3.cells[2].text ='20' print('文档插入表格成功!') doc1.save('insert_pic_table.docx') print('文档保存成功!') 5、样式处理 如果文档中有很多的段落,每个段落的中、英文字体、字号、颜色等设置相同,为了优化代码、提高效率可以提前按照要求创建一个样式对象,将此样式对象按要求设置好;以后再添加段落时无需进行设置,直接应用该样式即可,样式处理参考代码如下。 from docx import Document from docx.enum.style import WD_STYLE_TYPE from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.shared import Pt,RGBColor from docx.oxml.ns import qn doc1 = Document() header = doc1.sections[0].header # 获取第一节的页眉 header.add_paragraph('重庆城市职业学院欢迎你!')# 添加页眉 footer = doc1.sections[0].footer # 获取第一节的页脚 footer.add_paragraph('重庆市永川区兴龙大道1099号') # 添加页脚 #创建样式对象s1 s1 = doc1.styles.add_style('textstyle', WD_STYLE_TYPE.PARAGRAPH) s1.font.name = 'Times New Roman' s1.font.element.rPr.rFonts.set(qn('w:eastAsia'), '仿宋')#设置字体 s1.font.size = Pt(16) #设置字号 s1.font.color.rgb = RGBColor(0, 0, 255) #设置颜色 # 首行缩进两个字符 paragraph_format=s1.paragraph_format paragraph_format.first_line_indent=406400 t0=doc1.add_heading('重庆城市职业学院简介',level=0) t0.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER#标题居中 doc1.add_heading('历史沿革',level=1) #应用样式 doc1.add_paragraph(style=s1).add_run('学校发轫于1950年,始为重庆工人政治学校,\ 后为重庆市工会干部学校;2004年4月,经重庆市人民政府批准,同意在重庆市职工\ 大学、重庆市工会干部学校基础上,设立重庆城市职业学院;2013年9月,经重庆市\ 人民政府批准,行政主管部门由重庆市总工会变更为重庆市教育委员会;\ 2021年7月,入选“重庆市高水平高职学校建设单位”。') doc1.add_heading('区位优势',level=1) #应用样式 doc1.add_paragraph(style=s1).add_run('学校地处西部职教基地、重庆永川国家级高新区、\ 大数据产业园核心地段,坐拥观音山公园和凤凰湖公园,是一所建在高新园区和都市\ 公园里的大学,毗邻永川万达广场、乐和乐都主题公园,环境优美、交通便捷,\ 乘高铁到重庆主城仅需16分钟。') doc1.add_heading('办学条件',level=1) #应用样式 doc1.add_paragraph(style=s1).add_run('学校占地910余亩,校舍建筑面积30万平方米\ (含规划在建面积),现有全日制在校学生1万余人。学校现有教学科研实训用房\ 6万平方米,图书馆近9000余平方米,馆藏图书44万余册,电子图书100万册,\ 学生公寓7.4万平方米。学校立足“重庆市智慧校园示范校”项目建设,\ 打造“数据开放共享、资源丰富优质、治理透明高效、服务便捷周到、\ 信息安全可靠”的高水平“智慧城职”。\ 建有校内实践教学基地70余个,校外实习实训基地200余个。') doc1.save('style.docx') print('样式处理成功!') 6、读取word文档 如果需要读取word文档中的内容,参考代码如下,运行后输出的结果如下图所示。 from docx import Document # 打开文档 document = Document('style.docx') # 读取标题、段落、列表内容 ps = [ paragraph.text for paragraph in document.paragraphs] for p in ps: print(p) # 读取表格内容 ts = [table for table in document.tables] for t in ts: for row in t.rows: for cell in row.cells: print(cell.text, end=' ') print() 三、总结 通过本次任务的学习和实践,使我们了解了python-docx第三方库的作用,掌握了文档的基本结构,并且通过综合实训的引导,能够熟练完成文档的创建和修改、在文档中插入图片和表格、样式的创建和应用以及编写程序读取指定的word文档。建议同学们将有针对性的部分功能尽量使用函数来完成,需要的时候直接调用该函数即可,不需要再进行重复编码。 作业布置 读取word文档中的内容 教学反思 学科网(北京)股份有限公司 $$

资源预览图

4.1word自动化(教案)-《程序设计基础(Python)》同步教学(电子工业版)
1
4.1word自动化(教案)-《程序设计基础(Python)》同步教学(电子工业版)
2
4.1word自动化(教案)-《程序设计基础(Python)》同步教学(电子工业版)
3
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。