python生成ppt的方法


Posted in Python onJune 07, 2018

本文主要介绍如何通过python生成ppt文件,以及借助ppt模板来生成ppt

环境

python 3
python-pptx

安装

pip3 install python-pptx

将文字输出到ppt

效果图

python生成ppt的方法

代码

from pptx import Presentation

# 创建幻灯片 ------
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)

title = slide.shapes.title
subtitle = slide.placeholders[1]

# 设置标题和副标题
title.text = "Hello, World!"
subtitle.text = "pip install python-pptx"

prs.save("test.pptx")

图表输出到ppt

效果图

python生成ppt的方法

代码

from pptx import Presentation
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Inches

# 创建幻灯片 ------
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5])

# 定义图表数据 ---------------------
chart_data = ChartData()
chart_data.categories = ['East', 'West', 'Midwest']
chart_data.add_series('Series 1', (19.2, 21.4, 16.7))

# 将图表添加到幻灯片 --------------------
x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)
slide.shapes.add_chart(
  XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data
)

prs.save('chart-01.pptx')

使用ppt模板来生成ppt

  • 准备ppt模板(网络下载或自定义幻灯片母版)
  • 加载ppt模板,并使用指定幻灯片样式
  • 添加数据并生成新ppt

效果图

python生成ppt的方法

代码

from pptx import Presentation
from pptx.util import Inches
from pptx import Presentation
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Cm #Inches
from pptx.enum.chart import XL_LEGEND_POSITION

if __name__ == '__main__':
  # 创建幻灯片 ------
  prs = Presentation('template.pptx')
  title_only_slide_layout = prs.slide_layouts[5]
  slide = prs.slides.add_slide(title_only_slide_layout)
  shapes = slide.shapes

  shapes.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 = 4
  cols = 4
  top  = Cm(12.5)
  left  = Cm(3.5) #Inches(2.0)
  width = Cm(24) # Inches(6.0)
  height = Cm(6) # Inches(0.8)

  # 添加表格到幻灯片 --------------------
  table = shapes.add_table(rows, cols, left, top, width, height).table

  # 设置单元格宽度
  table.columns[0].width = Cm(6)# Inches(2.0)
  table.columns[1].width = Cm(6)
  table.columns[2].width = Cm(6)
  table.columns[3].width = Cm(6)

  # 设置标题行
  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_objects
  chart_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(3.5), Cm(4.2), Cm(24), Cm(8)

  graphic_frame = slide.shapes.add_chart(
    XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data
    )

  chart = graphic_frame.chart

  chart.has_legend = True
  chart.legend.position = XL_LEGEND_POSITION.TOP
  chart.legend.include_in_layout = False

  value_axis = chart.value_axis
  value_axis.maximum_scale = 100.0

  value_axis.has_title = True
  value_axis.axis_title.has_text_frame = True
  value_axis.axis_title.text_frame.text = "False positive"
  value_axis.axis_title.text_frame.auto_size

  prs.save('test_template.pptx')

本文用到的源码

下载地址

利用场景

  • 周期性数据汇总及报表生成
  • 业务或项目等数据可视化

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现百度关键词排名查询
Mar 30 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
对Python实现累加函数的方法详解
Jan 23 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
在python中求分布函数相关的包实例
Apr 15 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
python字典通过值反查键的实现(简洁写法)
Sep 30 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
pycharm 复制代码出现空格的解决方式
Jan 15 Python
python实现按长宽比缩放图片
Jun 07 #Python
python实现批量修改图片格式和尺寸
Jun 07 #Python
python实现批量图片格式转换
Jun 16 #Python
python脚本实现验证码识别
Jun 07 #Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 #Python
使用Python处理Excel表格的简单方法
Jun 07 #Python
python实现验证码识别功能
Jun 07 #Python
You might like
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
phpphp图片采集后按原路径保存图片示例
2014/02/18 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
Python实现list反转实例汇总
2014/11/11 Python
python使用mailbox打印电子邮件的方法
2015/04/30 Python
Python list操作用法总结
2015/11/10 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
python实现简单http服务器功能
2018/09/17 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
学生会干部自荐信
2014/02/04 职场文书
效能监察建议书
2014/05/19 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
芙蓉镇观后感
2015/06/10 职场文书
学生会部长竞选稿
2015/11/19 职场文书