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聊天程序实例代码分享
Nov 18 Python
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
Python中的集合类型知识讲解
Aug 19 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
Python反转序列的方法实例分析
Mar 21 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
Python自动抢红包教程详解
Jun 11 Python
python地震数据可视化详解
Jun 18 Python
python aiohttp的使用详解
Jun 20 Python
python实现在线翻译功能
Mar 03 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
python中get和post有什么区别
Jun 19 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
PHP容易被忽略而出错陷阱 数字与字符串比较
2011/11/10 PHP
php5.3 注意事项说明
2013/07/01 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
three.js 入门案例详解
2018/01/23 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
node.js通过url读取文件
2020/10/16 Javascript
python实现计算资源图标crc值的方法
2014/10/05 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python列表的切片实例讲解
2019/08/20 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
python数据分析:关键字提取方式
2020/02/24 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
高校辅导员推荐信范文
2013/12/25 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
幼儿园见习报告
2014/10/30 职场文书
大国崛起英国观后感
2015/06/02 职场文书
2016国培研修心得体会
2016/01/08 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android