poj 2480 python_python-pptx:是一个python处理ppt的库

1 说明

=====

1.1 重点介绍python-pptx的基本用法,注意事项,批量方法(★)。

1.2 讲解清楚,注释仔细,本人亲测,注意事项提醒,适合收藏,小白秒懂。

894b167675601fc75928152a80c9eb38.png

2 python-pptx基本使用

==================

2.1 官网

https://github.com/scanny/python-pptxhttps://python-pptx.readthedocs.io/en/latest/index.html

2.2 安装

pip install python-pptx#本机安装,国内源sudo pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple python-pptx

2.3 首页文字

2.3.1 代码

#ppt首页文字设置# 导包from pptx import Presentation# 创建空白演示文稿prs = Presentation()# 添加标题布局的幻灯片# #第0种布局是空白布局# #ppt布局,0是主标题和副标题,也就是首页#0~6等title_slide_layout = prs.slide_layouts[0]#添加空白幻灯片slide = prs.slides.add_slide(title_slide_layout)# 设置标题和副标题#title = slide.shapes.title#等同于上面的设置title = slide.placeholders[0]#注意只能是1,不能是0,是0就等同于主标题subtitle = slide.placeholders[1]#文字内容title.text = "Hello, World!"subtitle.text = "python-pptx was here!"# 保存prs.save('/home/xgj/Desktop/python-pptx/1.pptx')

2.3.1 图

c4548884a3844e7d0e60e1d8c9deeb4d.png

2.4 柱状图

2.4.1 代码

from pptx import Presentationfrom pptx.chart.data import ChartDatafrom pptx.enum.chart import XL_CHART_TYPE#导出英尺,还可以到处Cm#from pptx.util import Inchesfrom pptx.util import Cm# 创建幻灯片 ------prs = Presentation()#推荐图标布局5slide = prs.slides.add_slide(prs.slide_layouts[5]) # 定义图表数据 ---------------------chart_data = ChartData()chart_data.categories = ['Dog', 'Pig', 'Cow']#数组和数据chart_data.add_series('Series 1', (29, 20, 33))chart_data.add_series('Series 2', (14, 31.4, 19.7))# 将图表添加到幻灯片 --------------------#x和y是图片的坐标,左顶点坐标为0,0#cx和cy是图片的右下坐标,推荐参数数值#x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)#Cm厘米设置大小,推荐参数数值x, y, cx, cy = Cm(4), Cm(4), Cm(16), Cm(12)slide.shapes.add_chart(    XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data)#图表的标题title = slide.shapes.titletitle.text = "2组动物数据柱状图"prs.save('/home/xgj/Desktop/python-pptx/2-chart.pptx')

2.4.2 图

e571a8d0b9089cba4b05e20e1fd6da29.png

2.5 图片加载

代码,图省略

from pptx import Presentationfrom pptx.util import Cmprs = Presentation()#布局6,图片格式blank_slide_layout = prs.slide_layouts[6]#加入pptslide = prs.slides.add_slide(blank_slide_layout)#类似与x和y,代表图片的左上角的坐标位置left = top = Cm(3)#如果不设置宽和高,就是原图大小显示,一般都是尺寸不合适height= Cm(12)width=Cm(10)  pic = slide.shapes.add_picture('/home/xgj/Desktop/python-pptx/girl.jpeg',left,top,height=height,width=width)#原图#pic = slide.shapes.add_picture('/home/xgj/Desktop/python-pptx/girl.jpeg',left,top)prs.save('/home/xgj/Desktop/python-pptx/3-pic.pptx')

2.6 表格

2.6.1 代码

from pptx import Presentationfrom pptx.util import Cmprs = Presentation() #使用第6个空白版式创建新的幻灯片blank_slide_layout = prs.slide_layouts[6]slide = prs.slides.add_slide(blank_slide_layout)#表格设置4行2列rows,cols = 4,2#图表的左上角坐标left = top =Cm(5)#图表的宽和高width = Cm(18)height = Cm(3)#表格参数导入table = slide.shapes.add_table(rows,cols,left,top,width,height).table# 可以修改列宽、行高table.columns[0].width = Cm(6)table.columns[1].width = Cm(4)table.rows[0].height =Cm(2)#数据data = [    ['姓名','成绩'], #第一行,表头设置    ['李白',99],    ['王维', 92],    ['杜牧', 95],]#遍历for row in range(rows):    for col in range(cols):        table.cell(row,col).text =str(data[row][col])prs.save('/home/xgj/Desktop/python-pptx/4-table.pptx')

2.6.2 图

d0cacf57a81281198268078e8e862903.png

3 python-pptx高级使用

=================

3.1 组合图

3.1.1 代码

from pptx import Presentationfrom pptx.chart.data import ChartDatafrom pptx.enum.chart import XL_CHART_TYPEfrom pptx.util import Cm #Inchesfrom pptx.enum.chart import XL_LEGEND_POSITION# 创建幻灯片 ------prs = Presentation()title_only_slide_layout = prs.slide_layouts[5]slide = prs.slides.add_slide(title_only_slide_layout)shapes = slide.shapesshapes.title.text = '报告'# 定义表格数据 ------name_objects = ["object1", "object2", "object3"]name_AIs = ["AI1", "AI2", "AI3"]val_AI1 = (19.2, 21.4, 16.7)val_AI2 = (22.3, 28.6, 15.2)val_AI3 = (20.4, 26.3, 14.2)val_AIs = [val_AI1, val_AI2, val_AI3]# 表格参数设置rows = 4cols = 4top    = Cm(12.5)left   = Cm(2.5) #Inches(2.0)width  = Cm(16) # 4个宽度的4height = Cm(5) # Inches(0.8)# 添加表格到幻灯片 --------------------table = shapes.add_table(rows, cols, left, top, width, height).table# 设置单元格宽度,宽度与总表格宽度的关系table.columns[0].width = Cm(4)table.columns[1].width = Cm(4)table.columns[2].width = Cm(4)table.columns[3].width = Cm(4)# 设置标题行table.cell(0, 1).text = name_objects[0]table.cell(0, 2).text = name_objects[1]table.cell(0, 3).text = name_objects[2]# 填充数据table.cell(1, 0).text = name_AIs[0]table.cell(1, 1).text = str(val_AI1[0])table.cell(1, 2).text = str(val_AI1[1])table.cell(1, 3).text = str(val_AI1[2])table.cell(2, 0).text = name_AIs[1]table.cell(2, 1).text = str(val_AI2[0])table.cell(2, 2).text = str(val_AI2[1])table.cell(2, 3).text = str(val_AI2[2])table.cell(3, 0).text = name_AIs[2]table.cell(3, 1).text = str(val_AI3[0])table.cell(3, 2).text = str(val_AI3[1])table.cell(3, 3).text = str(val_AI3[2])# 定义图表数据 ---------------------chart_data = ChartData()chart_data.categories = name_objectschart_data.add_series(name_AIs[0], val_AI1)chart_data.add_series(name_AIs[1], val_AI2)chart_data.add_series(name_AIs[2], val_AI3)# 添加图表到幻灯片 --------------------#柱状图参数设置x, y, cx, cy = Cm(2.5), Cm(4.2), Cm(20), Cm(6)graphic_frame = slide.shapes.add_chart(    XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data    )chart = graphic_frame.chartchart.has_legend = Truechart.legend.position = XL_LEGEND_POSITION.TOPchart.legend.include_in_layout = Falsevalue_axis = chart.value_axisvalue_axis.maximum_scale = 100.0value_axis.has_title = Truevalue_axis.axis_title.has_text_frame = Truevalue_axis.axis_title.text_frame.text = "False positive"value_axis.axis_title.text_frame.auto_sizeprs.save('/home/xgj/Desktop/python-pptx/5-chart-complex.pptx')

3.1.2 图

9e0e94d06ce04284d18d785462c0bf32.png

3.2 批量生成ppt:python出来ppt的优点,举例★

(谁用单个页面制作ppt,不是python的优势,批量制作才是python的优势)

3.2.1 代码

#批量制作ppt文件,这个比较好from pptx import Presentationfrom pptx.util import Cmimport os# 演示文稿根对象,使用默认母版prs = Presentation()# 幻灯片布局title_only_slide_layout = prs.slide_layouts[5]#名字列表,当然也可以来自文件,txt或者xls和csv等读取提取name_list=['A','B','C','D','E','F']#读取某路径下的所有图片和显示图片pic_dir = os.path.join("/home/xgj/Desktop/python-pptx/pic_img")#这个 文件列表安装图片大小排序的pic_img_names = os.listdir(pic_dir)#从新排序,按名字序号阿拉伯数字的升序pic_img_names.sort()for i in range(len(name_list)):    # 1. 当前幻灯片对象    slide = prs.slides.add_slide(title_only_slide_layout)    # 2. 当前shapes(背景画布)对象    shapes = slide.shapes    #标题文字    shapes.title.text = '祝'+str(name_list[i]+'同学,新年快乐!')    #图片位置和大小设置    #类似与x和y,代表图片的左上角的坐标位置    left = top = Cm(3)    #如果不设置宽和高,就是原图大小显示,一般都是尺寸不合适    height= Cm(12)    width=Cm(10)      #加载图片到ppt每一页去    pic = slide.shapes.add_picture(pic_dir +"/" + pic_img_names[i],left,top,height=height,width=width)#保存prs.save('/home/xgj/Desktop/python-pptx/2pil.pptx')

3.2.2 图

f6e37f99dda3889996ab79547b173970.gif

图片来自网络,仅供学习,如有侵权请联系,定删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值