




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python程序设计工作手册式教材教案专业名称:课程名称:Python程序设计任课班级:教师姓名:所属院系:职称:课时:64使用教材:
情景四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对象。新建word文档在python-docx中,一个word文档用一个Document对象来表示,所以我们要新建一个word文档,只需要实例化一个Document对象即可,参考代码如下。fromdocximportDocument#第一步:创建一个文档对象doc1doc1=Document()#第二步:对象调用save()保存文档doc1.save(cqcvc.docx')print('创建文档成功!')通过上述两个步骤的操作,程序运行后一个名称为“cqcvc.docx”文档就创建好了,通过鼠标双击就可以打开,但此时这个word文档是空的,没有任何信息。3、写入word文档在编辑word文档前,首先需要选中操作对象,所以把文档标题、段落信息等对象先写入到文档中,写入文档参考代码如下。fromdocximportDocument#读取现有的文档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文档编辑的时,经常会向文档中插入图片和表格,并且需要调整图片的高度和宽度、往表格中插入标题和各单元格添加数据等操作。如果只是插入几幅图片、几个表格当然可以直接用应用软件来完成;但是如果要处理的图片和表格数据巨大,有成长上万张图片和表格需要处理,此时首选编写程序来快速、批量完成重复操作。插入图片和表格参考代码如下,运行后的效果如下图所示。fromdocximportDocumentfromdocx.sharedimportPtdoc1=Document()doc1.add_heading('文档中插入图片和表格',level=0)#插入图片cqcvc.jpgdoc1.add_picture('D:\\yd\\cqcvc.jpg',Pt(435),Pt(230))print('文档插入图片成功!')#插入3行3列的表格,'TableGrid'是表格边框常用的样式table=doc1.add_table(rows=3,cols=3,style='TableGrid')#定位第一个表格table=doc1.tables[0]table.add_row()#在表格最底部添加一行#标题行单元格添加关键字hc=table.rows[0].cellshc[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、样式处理如果文档中有很多的段落,每个段落的中、英文字体、字号、颜色等设置相同,为了优化代码、提高效率可以提前按照要求创建一个样式对象,将此样式对象按要求设置好;以后再添加段落时无需进行设置,直接应用该样式即可,样式处理参考代码如下。fromdocximportDocumentfromdocx.enum.styleimportWD_STYLE_TYPEfromdocx.enum.textimportWD_PARAGRAPH_ALIGNMENTfromdocx.sharedimportPt,RGBColorfromdocx.oxml.nsimportqndoc1=Document()header=doc1.sections[0].header#获取第一节的页眉header.add_paragraph('重庆城市职业学院欢迎你!')#添加页眉footer=doc1.sections[0].footer#获取第一节的页脚footer.add_paragraph('重庆市永川区兴龙大道1099号')#添加页脚#创建样式对象s1s1=doc1.styles.add_style('textstyle',WD_STYLE_TYPE.PARAGRAPH)='TimesNewRoman'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_formatparagraph_format.first_line_indent=406400t0=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文档中的内容,参考代码如下,运行后输出的结果如下图所示。fromdocximportDocument#打开文档document=Document('style.docx')#读取标题、段落、列表内容ps=[paragraph.textforparagraphindocument.paragraphs]forpinps:print(p)#读取表格内容ts=[tablefortableindocument.tables]fortints:forrowint.rows:forcellinrow.cells:print(cell.text,end='')print()三、总结通过本次任务的学习和实践,使我们了解了python-docx第三方库的作用,掌握了文档的基本结构,并且通过综合实训的引导,能够熟练完成文档的创建和修改、在文档中插入图片和表格、样式的创建和应用以及编写程序读取指定的word文档。建议同学们将有针对性的部分功能尽量使用函数来完成,需要的时候直接调用该函数即可,不需要再进行重复编码。作业布置读取word文档中的内容教学反思情景四Python与办公自动化主题excel自动化序号2课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:能够按照要求分别使用xlwt和openpyxl创建和写入excel,能够熟练掌握使用xlrd和openpyxl读取excel文件的方法、能够将本次和上次任务的结合起来,完成读取excel文件批量生成word试卷。知识目标:了解第三方库xlwt、xlrd、openpyxl、xlwings、pandas、XlsxWriter的功能和特点,了解xlwt和openpyxl创建和写入excel文件的方法,了解xlrd和openpyxl读取excel文件的方法。素质目标:接受新知识、自主学习的能力。教学重点创建和写入excel教学难点读取excel文件的方法教学过程设计备注一、复习上一节上课内容并引出本节上课内容在上一节中我们已经学习了python-docx第三方库的作用,掌握了文档的基本结构,并且通过综合实训的引导,能够熟练完成文档的创建和修改、在文档中插入图片和表格、样式的创建和应用以及编写程序读取指定的word文档。本节课我们来学习excel自动化。二、教学内容1、xlwt、xlrd、openpyxl简介Python处理Excel常用的第三方库有xlwt、xlrd、openpyxl、xlwings、pandas、XlsxWriter等等。xlwt可以实现指定表单、指定单元格的写入,只支持Excel2007之前的版本,保存的格式只支持xls格式,单个sheet不超过65535行。xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件。可以读取行数、列数、行的值、列的值;读取单元格的值、数据类型;增加、删除、修改表格数据;导出导入工作表等。openpyxl主要针对Excel2007年之后的版本(.xlsx),可以读写xlsx、xlsm、xltx、xltm等目前常见的Excel文档,可以进行文件的读写、单元格操作、公式、绘图、数据透视表等功能,它对文件大小没有限制,可以轻松实现Excel自动化办公。2、创建和写入excel(1)xlwt因为xlwt模块只支持不超过65535条数据的excel97-2003版本,保存的扩展名为*.xls,一旦数据量过大就无法使用了,所以在此只进行简单的介绍。使用xlwt模块创建和写入excel的步骤一共有四步分别是:(1)创建工作簿、(2)创建工作表、(3)在工作表中填充数据、(4)保存文件。参考代码和运行后创建的xls文件。(2)openpyxlfromopenpyxlimportWorkbookwb=Workbook()#创建一个工作簿ws=wb.active#获取第一个工作表ws.title='城职七大特色专业群'#设置工作表名称ws['A1']='序号'#设置第1列第1行单元格内容ws['B1']='专业群'data={1:'工业机器人技术',2:'市场营销',3:'市场营销',4:'大数据技术',5:'航空技术',6:'智能建造',7:'文旅康养和创意设计'}row=2#从第2行开始forkey,valueindata.items():ws.append([key,value])#一次添加一行数据(必须是可迭代对象)wb.save("openpyxl.xlsx")#保存Excel文件print("创建和写入Excel成功")3、读取excel文件(1)xlwtimportxlrddata=xlrd.open_workbook('openpyxl.xlsx')print('工作表数量:',data.nsheets)#获取工作表数量print('工作表名称:',data.sheet_names())#以列表返回所有工作表名称table=data.sheet_by_index(0)#返回第1个工作表rowcount=table.nrows#当前工作表行数colcount=table.ncols#当前工作表列数cellinfor1=table.cell_value(0,1)#获取指定行列中单元格的值cellinfor2=table.cell_value(7,1)print('第1个工作表行数:',table.nrows)print('第1个工作表列数:',table.ncols)print('第1个工作表1行2列的值为:',cellinfor1)print('第1个工作表8行2列的值为:',cellinfor2)print('文件读取成功')(2)openpyxl使用openpyxl来读取excel数据要特别注意,openpyxl中列和行的起始标识不再是从0开始,而是1开始的;从excel中读取出来的数据只有两种类型:即数值类型和字符串类型,参考代码和运行后的效果如下图。4、读取excel文件批量生成word试卷完成本次任务的操作步骤:(1)导入xlrd、python-docx,打开题库文件、获取第一个工作表;(2)使用xlrd读取准备好的“data.xlsx”题库文件,将试题信息全部保存到列表中;(3)使用for循环语句控制批量生成试卷的数量;(4)通过python-docx创建文档对象,并将读取到的题库内容按样式写入word文档后保存。word文档试卷打开效果如图4-17所示,以上功能请同学们以小组为单位协同完成。三、总结通过本次任务的学习和实践,使我们了解了常用的excel第三方库,掌握了xlwt、xlrd、openpyxl的使用方法,并且通过综合实训的引导,能够熟练完成excel文档的创建、写入和读取。同时将excel和word结合应用起来,完成读取excel数据批量生成word试卷的强化训练,很好地起到了巩固提高、融会贯通的目的。作业布置读取excel文件批量生成word试卷教学反思情景四Python与办公自动化主题ppt自动化序号3课时2教学手段多媒体、板书、实训室教学方法讲授法、演示法、案例法教学课型□理论□实训√一体化□(其它)教学目标能力目标:能够向指定某一张ppt内写入标题和副标题、添加文本框并写入内容,能够熟练掌握添加图形和图片、写入表格和图表的方,能够将本次和上次任务的结合起来,完成读取excel数据批量生成多张幻灯片。知识目标:了解python-pptx的功能和特点、了解ppt的基本结构和创建ppt的方法。素质目标:接受新知识、自主学习的能力。教学重点创建ppt的方法、向ppt写入文本、图形和图片教学难点向ppt写入表格和图表教学过程设计备注一、复习上一节上课内容并引出本节上课内容在上一节中我们已经学习了常用的excel第三方库,掌握了xlwt、xlrd、openpyxl的使用方法,并且通过综合实训的引导,能够熟练完成excel文档的创建、写入和读取。同时将excel和word结合应用起来,完成读取excel数据批量生成word试卷的强化训练。本次课我们继续来学习Python与办公自动化最后一节内容:ppt自动化。二、教学内容1、python-pptx简介python-pptx为Python第三方模块,用于自动生成和更新PowerPoint文件,使用之前还是需要通过pipinstallpython-pptx安装(支持Python2.6/2.7/3.3/3.4/3.6),依赖库会自动安装:lxml、Pillow、XlsxWriter,安装完成后通过importpptx导入及可。python中ppt的基本结构分别用:Slide(幻灯片):就是演示文稿中每一页的页面;Shape(方框、形状、文本框;Run(文字块):一般为较少字符和Paragraph(段落)来表示。2、创建pptx通过add_slide()插入自定义版式的幻灯片,创建pptx参考代码如下,创建后的演示文稿效果如下图所示。importpptx#得到演示文稿的对象objobj=pptx.Presentation()#插入幻灯片add_slide()obj.slides.add_slide(obj.slide_layouts[0])#版式1obj.slides.add_slide(obj.slide_layouts[1])#版式2obj.slides.add_slide(obj.slide_layouts[2])#版式3#保存pptx文稿obj.save('ppt1.pptx')print('任务完成')3、写入pptx(1)写入标题和副标题importpptx#读取(创建)一个演示文稿对象obj=pptx.Presentation('ppt1.pptx')#访问第一张幻灯片slide=obj.slides[0]#修改占位符里的内容(slide.placeholders)center_title1=slide.placeholders[0]#主标题sub_title1=slide.placeholders[1]#副标题center_title1.text='重庆城市职业学院'sub_title1.text='重庆市永川区兴龙大道1099号'#访问第二张幻灯片slide=obj.slides[1]center_title2=slide.placeholders[0]#主标题sub_title2=slide.placeholders[1]#副标题center_title2.text='学院简介'sub_title2.text='重庆城市职业学院是教育部备案,重庆市人民政府举办,\重庆市教委主管的全日制公办高等院校。'obj.save('ppt1.pptx')(2)添加文本框并写入内容在幻灯片指定位置通过add_textbox()插入文本框,参数依次为left,top,width,height(文本框和左边、顶端的距离以及文本框的宽度和高度值)。添加文本框并写入内容参考代码如下。importpptxfrompptx.utilimportCm,Pt#读取(创建)一个演示文稿对象obj=pptx.Presentation('ppt1.pptx')#访问第二张幻灯片slide=obj.slides[1]#设置文本框和左边、顶端的距离及宽度和高度left=Cm(8);top=Cm(13);width=Cm(15);height=Cm(3)#添加文本框并写入内容text_box=slide.shapes.add_textbox(left,top,width,height)tf=text_box.text_frametf.text='地址:重庆市永川区兴龙大道1099号'p1=tf.add_paragraph()p1.text='招生热线:023-4957800049579000'p1.line_spacing=1.5#1.5倍行距='仿宋'#字体p1.font.bold=True#加粗p1.font.size=Pt(20)#字号16p2=tf.add_paragraph()p2.text='电子信箱:info@'='仿宋'p2.font.bold=Truep2.font.size=Pt(20)obj.save('ppt1.pptx')print('任务完成')(3)添加图形和图片在幻灯片指定位置通过add_shape()添加自选图形,第一个参数为自选图形类型,后续参数依次对应距离左边,距离顶端,图形宽度,图形高度;在幻灯片指定位置通过add_picture()添加图片,后续参数依次对应图片路径,距离左边,距离顶端,图片宽度,图片高度。添加图形和图片的参考代码如下,创建后的演示文稿效果如下图所示。importpptxfrompptx.enum.shapesimportMSO_SHAPEfrompptx.dml.colorimportRGBColorfrompptx.utilimportCm,Pt#读取(创建)一个演示文稿对象obj=pptx.Presentation('ppt1.pptx')#访问第三张幻灯片slide=obj.slides[2]#1.添加自选图形left=Cm(6);top=Cm(2);width=Cm(12);height=Cm(3)shape=slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE,left,top,width,height)#设置填充色(纯色)fill=shape.fillfill.solid()fill.fore_color.rgb=RGBColor(102,102,255)#设置边线框颜色和宽度,left,topline=shape.lineline.color.rgb=RGBColor(255,255,255)line.color.brightness=0.5line.width=Pt(2)#2.添加图片并设置距离左边、顶端距离以及图片宽度、高度left=top=Cm(6)width=height=Cm(5)#省略width,height则是图片原始大小pic=slide.shapes.add_picture('d:\\yd\\cqcvc.jpg',left,top)obj.save('ppt1.pptx')print('任务完成')(4)写入表格和图表在幻灯片指定位置通过add_table()写入指定行数、列数的表格,后续参数依次对应距离左边,距离顶端,表格宽度,表格高度,表格创建完成后,合并单元格通过merge方法,通过cell方法获取到指定单元格,设置text属性为单元格设置文本内容。使用add_chart()添加图表,第一个参数为图标类型,后续参数依次为left,top,width,height。写入表格和图表参考代码如下,创建后的演示文稿效果如下图所示。importpptx
frompptx.utilimportCm,Pt
frompptx.chart.dataimportCategoryChartData
frompptx.enum.chartimportXL_CHART_TYPE
#读取(创建)一个演示文稿对象
obj=pptx.Presentation('ppt1.pptx')
#添加幻灯片
new_slide=obj.slide_layouts[6]#版式7
slide=obj.slides.add_slide(new_slide)
rows=5;cols=4#表格的行数、列数
left=top=Cm(1);width=Cm(10);height=Cm(5)
table=slide.shapes.add_table(rows,cols,left,top,width,height).table
#合并指定单元格
cell=table.cell(0,0);cell1=table.cell(0,3);cell.merge(cell1)
table.cell(0,0).text='学生基本信息'#第一行
table.columns[0].width=Cm(4)#第一列宽
table.columns[1].width=Cm(4)#第二列宽
table.columns[2].width=Cm(4)#第三列宽
table.columns[3].width=Cm(2)#第四列宽
table.rows[0].height=Cm(1.5)#第一行高
#学生基本信息
data=[
['学号','姓名','班级','年龄'],['2022001','张三','一班','19'],
['2022002','李四','二班','18'],
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿克苏工业职业技术学院《特种胶黏剂》2023-2024学年第二学期期末试卷
- 阿坝职业学院《数学教学技能综合训练》2023-2024学年第一学期期末试卷
- 陇东学院《工程制图与CAD》2023-2024学年第二学期期末试卷
- 陕西中医药大学《外贸商品学》2023-2024学年第二学期期末试卷
- 陕西学前师范学院《文化艺术管理研究》2023-2024学年第一学期期末试卷
- 陕西工商职业学院《景观设计综合》2023-2024学年第一学期期末试卷
- 陕西旅游烹饪职业学院《微机原理与接口技术A》2023-2024学年第二学期期末试卷
- 陕西省洛南中学2024-2025学年高三下学期五调考试物理试题试卷含解析
- 陕西省西安市工大附中2025年普通高中初三教学质量测试试题化学试题试卷含解析
- 陕西省西安市铁一中2025届高考化学试题命题比赛模拟试题含解析
- 中小学国家教育智慧平台
- 类医疗器械经营质量管理制度及工作程序
- 2025交管12123学法减分考试题库和答案
- T-JDFA 02-2024 江苏省转型融资主体认定评价标准
- 5共同建设有序生活(教学设计)-统编版道德与法治五年级上册
- 2025年新闻、记者采编人员岗位职业技能资格基础知识考试题库(附答案)
- 2025年吉林铁道职业技术学院单招职业技能测试题库一套
- 生物化学习题集(护理)
- 2025年化妆品包装标签法律要求培训
- 中间人协议书范本(2025年)
- 演员经纪合同法律风险-洞察分析
评论
0/150
提交评论