python可以写PPT吗

Python (208) 2023-06-14 15:35:54

python可以写PPT。方法为:1、输入“pip3 install python-pptx”命令安装python-pptx;2、准备ppt模板(网络下载或自定义幻灯片);3、加载ppt模板并使用指定幻灯片样式;4、添加数据即可生成ppt。

简介

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

环境

python 3

python-pptx

安装

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
pip3installpython-pptx
pip3installpython-pptx
pip3installpython-pptx

将文字输出到ppt

效果图

代码

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
frompptximportPresentation
#创建幻灯片------
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="pipinstallpython-pptx"
prs.save("test.pptx")
frompptximportPresentation #创建幻灯片------ 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="pipinstallpython-pptx" prs.save("test.pptx")
frompptximportPresentation
#创建幻灯片------
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="pipinstallpython-pptx"
prs.save("test.pptx")

图表输出到ppt

效果图

代码

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
frompptximportPresentation
frompptx.chart.dataimportChartData
frompptx.enum.chartimportXL_CHART_TYPE
frompptx.utilimportInches
#创建幻灯片------
prs=Presentation()
slide=prs.slides.add_slide(prs.slide_layouts[5])
#定义图表数据---------------------
chart_data=ChartData()
chart_data.categories=['East','West','Midwest']
chart_data.add_series('Series1',(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')
frompptximportPresentation frompptx.chart.dataimportChartData frompptx.enum.chartimportXL_CHART_TYPE frompptx.utilimportInches #创建幻灯片------ prs=Presentation() slide=prs.slides.add_slide(prs.slide_layouts[5]) #定义图表数据--------------------- chart_data=ChartData() chart_data.categories=['East','West','Midwest'] chart_data.add_series('Series1',(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')
frompptximportPresentation
frompptx.chart.dataimportChartData
frompptx.enum.chartimportXL_CHART_TYPE
frompptx.utilimportInches
#创建幻灯片------
prs=Presentation()
slide=prs.slides.add_slide(prs.slide_layouts[5])
#定义图表数据---------------------
chart_data=ChartData()
chart_data.categories=['East','West','Midwest']
chart_data.add_series('Series1',(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

效果图

代码

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
frompptximportPresentation
frompptx.utilimportInches
frompptximportPresentation
frompptx.chart.dataimportChartData
frompptx.enum.chartimportXL_CHART_TYPE
frompptx.utilimportCm#Inches
frompptx.enum.chartimportXL_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="Falsepositive"
value_axis.axis_title.text_frame.auto_size
prs.save('test_template.pptx')
frompptximportPresentation frompptx.utilimportInches frompptximportPresentation frompptx.chart.dataimportChartData frompptx.enum.chartimportXL_CHART_TYPE frompptx.utilimportCm#Inches frompptx.enum.chartimportXL_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="Falsepositive" value_axis.axis_title.text_frame.auto_size prs.save('test_template.pptx')
frompptximportPresentation
frompptx.utilimportInches
frompptximportPresentation
frompptx.chart.dataimportChartData
frompptx.enum.chartimportXL_CHART_TYPE
frompptx.utilimportCm#Inches
frompptx.enum.chartimportXL_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="Falsepositive"
value_axis.axis_title.text_frame.auto_size

prs.save('test_template.pptx')

推荐课程:Python教程之Tkinter视频教程

THE END

发表回复