情景四  Python与办公自动化(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-10
| 26页
| 50人阅读
| 3人下载
普通

内容正文:

情景四  Python与办公自动化 任务 mission 1 2 3 word自动化 ppt自动化 excel自动化 2 任务一 word自动化 一.新建和写入word文档 1.新建word文档  在python-docx中,一个word文档用一个Document对象来表示,所以我们要新建一个word文档,只需要实例化一个Document对象即可,参考代码如下。 from docx import Document #第一步:创建一个文档对象doc1 doc1 = Document() #第二步:对象调用save()保存文档 doc1.save('cqcvc.docx') print('创建文档成功!') 4 一.新建和写入word文档 2.写入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('写入文档成功!') 5 二. 插入图片和表格 1.插入图片  如果只是插入几幅图片、几个表格当然可以直接用应用软件来完成;但是如果要处理的图片和表格数据巨大,有成长上万张图片和表格需要处理,此时首选编写程序来快速、批量完成重复操作。 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('文档插入图片成功!') …… 6 二. 插入图片和表格 1.插入表格 #插入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('文档保存成功!') 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('文档插入图片成功!') 7 三. 读取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() 8 三. 任务一 小结   通过本次任务的学习和实践,使我们了解了python-docx第三方库的作用,掌握了文档的基本结构,并且通过综合实训的引导,能够熟练完成文档的创建和修改、在文档中插入图片和表格、样式的创建和应用以及编写程序读取指定的word文档。建议同学们将有针对性的部分功能尽量使用函数来完成,需要的时候直接调用该函数即可,不需要再进行重复编码。 9 任务二 excel自动化 一.创建和写入excel 1. 使用xlwt创建和写入excel  xlwt模块只支持不超过65535条数据的excel 97-2003版本,保存的扩展名为*.xls,一旦数据量过大就无法使用了,所以在此只进行简单的介绍。使用xlwt模块创建和写入excel的步骤一共有四步分别是: (1)创建工作簿; (2)创建工作表、; (3)在工作表中填充数据; (4)保存文件。 11 一.创建和写入excel 2. 使用openpyxl创建和写入excel  openpyxl主要针对excel 2007年之后的版本(.xlsx),可以读写xlsx、xlsm、xltx、xltm等目前常见的Excel文档,可以进行文件的读写、单元格操作、公式、绘图、数据透视表等功能,它对文件大小没有限制,可以轻松实现Excel自动化办公,参考代码如下,运行后的效果如下所示。 from openpyxl import Workbook wb = Workbook() #创建一个工作簿 ws = wb.active #获取第一个工作表 ws.title='城职七大特色专业群' #设置工作表名称 ws['A1'] = '序号' # 设置第1列第1行单元格内容 ws['B1'] = '专业群' data={ 1:'工业机器人技术', 2:'市场营销', 3:'市场营销', 4:'大数据技术', 5:'航空技术', 6:'智能建造', 7:'文旅康养和创意设计' } row=2 # 从第2行开始 for key, value in data.items(): ws.append([key, value]) #一次添加一行数据(必须是可迭代对象) wb.save("openpyxl.xlsx") # 保存 Excel 文件 print("创建和写入excel成功") 12 二. 读取excel文件 1.使用xlrd读取excel文件  在成功安装xlrd库后,使用xlrd读取xlsx文件时,通常会出现如下的错误提示: xlrd.biffh.XLRDError: Excel xlsx file; not supported 这是因为新版的xlrd(2.0.1版本) 已删除了对 xls 文件以外的任何内容的支持,不支持xlsx文件; 如果想要使用xlrd读取xlsx文件,则需要卸载新版后再安装旧版xlrd(1.2.0版本),安装命令如下: pip uninstall xlrd pip install xlrd==1.2.0 13 二. 读取excel文件 1.使用xlrd读取excel文件 import xlrd data=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('文件读取成功') 14 二. 读取excel文件 2.使用openpyxl读取excel文件 openpyxl中列和行的起始标识不再是从0开始,而是1开始的;从excel中读取出来的数据只有两种类型:即数值类型和字符串类型,参考代码和运行后的效果如下图所示。 15 三. 读取excel文件批量生成word试卷 完成本次任务的操作步骤: (1)导入xlrd、python-docx,打开题库文件、获取第一个工作表; (2)使用xlrd读取准备好的“data.xlsx”题库文件,将试题信息全部保存到列表中; (3)使用for循环语句控制批量生成试卷的数量; (4)通过python-docx创建文档对象,并将读取到的题库内容按样式写入word文档后保存。 word文档试卷打开效果如图所示,以上功能请同学们以小组为单位协同完成。 16 四. 任务二 小结   通过本次任务的学习和实践,使我们了解了常用的excel第三方库,掌握了xlwt、xlrd、openpyxl的使用方法,并且通过综合实训的引导,能够熟练完成excel文档的创建、写入和读取。同时将excel和word结合应用起来,完成读取excel数据批量生成word试卷的强化训练,很好地起到了巩固提高、融会贯通的目的。 17 任务三 ppt自动化 一. python-pptx简介  python中ppt的基本结构分别用:Slide(幻灯片):就是演示文稿中每一页的页面;Shape(方框、形状、文本框;Run(文字块):一般为较少字符和Paragraph(段落)来表示。在幻灯片中添加文本框、图形、图片、表格和图表的方法如下图所示。 19 添加文本框 add_textbox( ) 添加图形 add_shape( ) 添加图片add_picture( ) 添加表格 add_table( ) 添加图表 add_chart( ) 二. 创建pptx  通过add_slide( )插入自定义版式的幻灯片,创建pptx参考代码和创建后的演示文稿效果如下所示。 import pptx #得到演示文稿的对象obj obj=pptx.Presentation() #插入幻灯片add_slide() obj.slides.add_slide(obj.slide_layouts[0])#版式1 obj.slides.add_slide(obj.slide_layouts[1])#版式2 obj.slides.add_slide(obj.slide_layouts[2])#版式3 #保存pptx文稿 obj.save('ppt1.pptx') print('任务完成') 20 二. 写入pptx import pptx #读取(创建)一个演示文稿对象 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')   1.写入标题和副标题 在指定幻灯片中写入标题和副标题的参考代码如下右侧,创建后的演示文稿效果如下图所示。 21 二. 写入pptx import pptx from pptx.util import Cm,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_frame tf.text = '地址:重庆市永川区兴龙大道1099号' p1 = tf.add_paragraph() p1.text = '招生热线:023-49578000 49579000' p1.line_spacing = 1.5 # 1.5倍行距 p1.font.name = '仿宋' #字体 p1.font.bold = True #加粗 p1.font.size = Pt(20) #字号16 p2 = tf.add_paragraph() p2.text = '电子信箱:info@cqcvc.edu.cn' p2.font.name = '仿宋' p2.font.bold = True p2.font.size = Pt(20) obj.save('ppt1.pptx') print('任务完成')   2.添加文本框并写入内容 在幻灯片指定位置通过add_textbox( )插入文本框,参数依次为left, top, width, height ( 文本框和左边、顶端的距离以及文本框的宽度和高度值)。 22 二. 写入pptx import pptx from pptx.enum.shapes import MSO_SHAPE from pptx.dml.color import RGBColor from pptx.util import Cm,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.fill fill.solid() fill.fore_color.rgb=RGBColor(102,102,255) #设置边线框颜色和宽度, left, top line=shape.line line.color.rgb=RGBColor(255,255,255) line.color.brightness = 0.5 line.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('任务完成')   3.添加图形和图片 在幻灯片指定位置通过add_shape( ) 添加自选图形,第一个参数为自选图形类型,后续参数依次对应距离左边,距离顶端,图形宽度,图形高度;在幻灯片指定位置通过add_picture( ) 添加图片,后续参数依次对应图片路径,距离左边,距离顶端,图片宽度,图片高度。 23 二. 写入pptx   4.写入表格和图表 使用add_table( ) 写入指定行数、列数的表格,后续参数依次对应距离左边,距离顶端,表格宽度,表格高度,表格创建完成后,合并单元格通过 merge 方法,通过 cell 方法获取到指定单元格,设置 text 属性为单元格设置文本内容。 使用add_chart( ) 添加图表,第一个参数为图标类型,后续参数依次为 left,top,width,height。 24 三. 读取pptx 读取pptx参考代码如下,读取后输出结果如图所示。 import pptx #读取演示文稿对象 obj=pptx.Presentation('ppt1.pptx') slides=len(obj.slides) print('当前文件一共有',str(slides),'页幻灯片') for slide in obj.slides: #获取幻灯片 for shape in slide.shapes: #获取形状 if shape.has_text_frame: #是否有文字 text_frame=shape.text_frame #获取形状中的段落 for paragraph in text_frame.paragraphs: print(paragraph.text) print('读取任务完成') 25 四. 任务三 小结   通过本次任务的学习和实践,使我们了解了python-pptx第三方库和pptx的基本结构,掌握了创建pptx的方法,并且通过综合实训的引导,能够熟练的向指定幻灯片写入标题和副标题、添加文本框并写入内容、添加图形和图片、写入表格和图表。同时还抛出了读取excel数据按模板批量生成多张幻灯片的强化训练,很好地起到了学以致用、学用相长的目的。 26 $$

资源预览图

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