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

环境

python 3

python-pptx

安装

pip3 install python-pptx

将文字输出到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

效果图

代码

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

效果图

代码

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')

此文用到的源码

下载地址

利用场景

周期性数据汇总及报表生成

业务或项目等数据可视化

上面即是这篇文章的内容,希望对各位的学习有所启发,也希望大家多多支持学猫在线(shtml.net)。

pythonppt生成替换_python生成ppt的方法相关推荐

  1. python生成时间戳_python生成13位或16位时间戳以及反向解析时间戳的实例

    我就废话不多说了,直接上代码吧! import datetime import time def get_float_time_stamp(): datetime_now = datetime.dat ...

  2. python随机生成验证码_Python生成随机验证码的两种方法

    # -*- coding: utf-8 -*- import random def generate_verification_code_v2(): ''' 随机生成6位的验证码 ''' code_l ...

  3. python生成圆形_python生成圆形图片的方法

    本文实例为大家分享了python生成圆形图片的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ __author__= 'Du' ...

  4. python生成报告_python生成测试报告

    <最简洁的nose生成html报告方法> 安装: nose是继承于unittest的一个python单元测试框架. 属于第三方包,要使用,首先需要安装,推荐pip(解决依赖): pip i ...

  5. python生成数字_Python生成数字图片代码分享

    本文向大家分享了几段Python生成数字图片的代码,喜欢的朋友可以参考.具体如下: 最终版本 # -*- coding:utf-8 -*- from PIL import Image,ImageFon ...

  6. python根据excel生成报表_python生成Excel图表(通过xlsxwriter)

    前面介绍了pandas的简单用法,pandas的数据可以通过matlab第三方包将数据生成报表,但是我想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图标 缺点:xlsx ...

  7. python请编写程序、生成随机密码_python生成随机密码串

    今天修改服务器密码,想来想去不知道设置什么密码比较好,索性设置随机数吧.python当中的random模块可以生成随机数,主要用这个生成随机密码. 顺便在讲一下string模块中的3个函数:strin ...

  8. python随机生成字符串_python生成随机数、随机字符串

    python生成随机数.随机字符串 import random import string # 随机整数: print random.randint(1,50) # 随机选取0到100间的偶数: pr ...

  9. python生成随机码_python生成随机验证码(中文验证码)示例

    # -*- coding: utf-8 -*- import Image,ImageDraw,ImageFont import random import math, string class Ran ...

  10. python 生成随机数_python 生成随机数模块random 常用方法总结

    random.random() 用来随机生成一个0到1之间的浮点数,包括零. In [1]: import random In [2]: random.random() Out[2]: 0.15790 ...

最新文章

  1. 从pandas resample说起,然后再超越resample,通过pd.Grouper、groupby、agg
  2. php+羊,PHP之羊生小羊的问题
  3. 浅析制造业物料编码在ERP系统中的实施
  4. U3D 打包时找不到tag的问题
  5. 18.虚拟机linux上网问题
  6. 如何配置一套优雅的Lua开发环境
  7. Eclipse配置关联Tomcat并运行项目
  8. Oracle数据库的导入和导出的两种方式
  9. drools dmn_Drools DMN最新开源引擎性能改进
  10. windows 64位 安装mvn提示 不是内部或外部命令
  11. html百分比代码怎么写,参考Bootstrap写的一个带百分比的进度条(附源码)
  12. 百度百科做起来也不难
  13. su: /bin/bash: Permission denied带来的疑惑
  14. HTML中元素的position属性详解
  15. selenium.common.exceptions.WebDriverException:Message: 'chromedriver' executable needs to be in PATH
  16. python数据生成pdf_利用Python的Django框架生成PDF文件的教程
  17. Linux系统设置DNS服务器地址
  18. ROS-3DSLAM(十二)lvi-sam源代码阅读10 —— visual_loop阅读3 + ORB学习
  19. GOME-2 SIF 数据链接
  20. CDA二级易错点总结

热门文章

  1. linux命令中cd / 和 cd ~ 是什么意思?
  2. 贡献度分析--帕累托图
  3. IDEA本地插件下载及安装
  4. 开机自动启动QQ和微信,怎样设置取消
  5. android_静默安装/adb执行/软件搬家/消息派发
  6. 道长运维之CPU负载高
  7. 关于SVN无法cleanup的问题
  8. 末学者笔记--Python函数三玄
  9. 极大团与networkx Bron-Kerbosch算法源码解读
  10. 庆祝61-牛客模拟笔试七月场(使圆圈队形中相邻小朋友的身高差的最大值最小的解法)