1.安装:
pip install python-pptx
pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple
2.初步认识并创建ppt
from pptx import Presentation #导入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 = "python-pptx 可以轻松制作powerpoint!" #给副标题文本赋值 prs.save('czl.pptx') #保存文件
3.遍历打印模板中样式中的文本框中段落的文字
from pptx import Presentation #导入 wenjian = Presentation("moban.pptx") #打开模板PPT #wenjian.slides,指所有内容 for mb in wenjian.slides: #遍历打印所有母版 print(mb) for yangshi in mb.shapes: #mb.shapes,指母版中的所有样式,遍历打印所有样式 print(yangshi) if yangshi.has_text_frame: #yangshi.has_text_frame,表示样式中有文字 wenbenkuang = yangshi.text_frame #获取样式中的文本框 for duanluo in wenbenkuang.paragraphs: #wenbenkuang.paragraphs,表示文本框中的段落 print(duanluo) #打印段落 # wenzi = wenbenkuang.text #获取文本框中的文字 wenzi = duanluo.text #段落中的文字 print(wenzi)
4.保存PPT中文字到word文档中
# encoding=utf8 #-*-coding:utf-8 -*- #pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple from pptx import Presentation #导入PPT库 from docx import Document #导入word库 myword = Document() #定义一个word文档 wenjian = Presentation("moban.pptx") #打开模板PPT #wenjian.slides,指所有内容 for mb in wenjian.slides: #遍历打印所有母版 print(mb) for yangshi in mb.shapes: #mb.shapes,指母版中的所有样式,遍历打印所有样式 print(yangshi) if yangshi.has_text_frame: #yangshi.has_text_frame,表示样式中有文字 wenbenkuang = yangshi.text_frame #获取样式中的文本框 for duanluo in wenbenkuang.paragraphs: #wenbenkuang.paragraphs,表示文本框中的段落 print(duanluo) #打印段落 # wenzi = wenbenkuang.text #获取文本框中的文字 wenzi = duanluo.text #段落中的文字 print(wenzi) myword.add_paragraph(wenzi) #将文字添加到word文档中 myword.save("1.docx") #保存word文档为1.docx
5.获取PPT模板中的一张幻灯片中的占位符,然后根据这个模板新增加一个幻灯片,并向新添加的幻灯片中的占位符中赋值
# encoding=utf8 #-*-coding:utf-8 -*- #pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple from pptx import Presentation #导入PPT库 from docx import Document #导入word库 myword = Document() #定义一个word文档 wenjian = Presentation("moban.pptx") #打开模板PPT diyigeyangshi = wenjian.slide_layouts[0] #获取模板PPT文件中的第一个样式 huandengpian = wenjian.slides.add_slide(diyigeyangshi) #添加一个幻灯片,使用模板PPT中第一个样式 for zhanweifu in huandengpian.placeholders: #遍历幻灯片中的所有占位符 xinxi = zhanweifu.placeholder_format #获取占位符中的信息,即内容 print("占位符中的信息:") print(xinxi) zhanweifu_id = xinxi.idx #占位符的索引 print("占位符的索引:") print(zhanweifu_id) zhanweifu_name = zhanweifu.name #占位符的名称 print("占位符的名称:") print(zhanweifu_name) zhanweifu_type = xinxi.type #占位符的类型 print("占位符的类型:") print(zhanweifu_type) #往占位符中的text赋值 zhanweifu.text = "%s-%s-%s" % (zhanweifu_id,zhanweifu_name,zhanweifu_type) biaoti = huandengpian.placeholders[0] #幻灯篇中第一个占位符要填写的是标题 fubiaoti = huandengpian.placeholders[0] #幻灯片中第二个占位符要填写的是副标题 biaoti.text = "疫情期间应该做到什么?" #给标题的占位符中的文字内容赋值"疫情期间应该做到什么?" fubiaoti.text = "减少非必要的外出" #给副标题占位符的文字填写 "减少非必要的外出" wenjian.save("2.pptx") #保存PPT
6.给幻灯片中添加段落及设置等级
# encoding=utf8 #-*-coding:utf-8 -*- #pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple from pptx import Presentation #导入PPT库 from docx import Document #导入word库 myword = Document() #定义一个word文档 wenjian = Presentation() #打开模板PPT diergeyangshi = wenjian.slide_layouts[1] #获取模板PPT文件中的第二个样式 huandengpian = wenjian.slides.add_slide(diergeyangshi) #添加一个幻灯片,使用模板PPT中第一个样式 biaoti = huandengpian.shapes.title #获取幻灯片 内容中的标题占位符 zhengwen = huandengpian.shapes.placeholders[1] #获取幻灯片 模板中的第二个占位符,即是写正文的地方 biaoti.text = '疫情期间如何不给国家添乱?' #给幻灯片中的标题占位符中的文字内容处填写 '疫情期间如何不给国家添乱?' zhengwen_wenbenkuang = zhengwen.text_frame #定位到正文占位符的文本框 zhengwen_wenbenkuang.text = '减少非必要的外出' #给文本框中的文字填写 '减少非必要的外出' duanluo = zhengwen_wenbenkuang.add_paragraph() #文本框中添加一个段落 duanluo.text = "戴口罩,勤洗手" #给段落占位符中添加文字内容"戴口罩,勤洗手" duanluo.level = 1 #给段落加一个等级 1 duanluo2 = zhengwen_wenbenkuang.add_paragraph() #文本框中添加一个段落 duanluo2.text = "一起学习" #给段落占位符中添加文字内容"戴口罩,勤洗手" duanluo2.level = 2 # 给段落添加一个等级2 duanluo3 = zhengwen_wenbenkuang.add_paragraph() #文本框中添加一个段落 duanluo3.text = "办公自动化" #给段落占位符中添加文字内容"戴口罩,勤洗手" wenjian.save("2.pptx") #保存PPT
7.添加文本框,先设置一个文本框对象,然后设置文本框,及其文字,以及文字的字体大小
# encoding=utf8 #-*-coding:utf-8 -*- #pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple from pptx import Presentation #导入PPT库 from pptx.util import Cm,Pt #导入单位 Cm,Pt from docx import Document #导入word库 myword = Document() #定义一个word文档 wenjian = Presentation() #打开模板PPT diqigeyangshi = wenjian.slide_layouts[6] #获取模板PPT文件中的第七个样式 huandengpian = wenjian.slides.add_slide(diqigeyangshi) #添加一个幻灯片,使用模板PPT中第七个样式 left = top = width = heigth = Cm(4) #左右宽高都赋值为4厘米 wenbenkuang_duixiang = huandengpian.shapes.add_textbox(left,top,width,heigth) #添加一个文本框对象 wenbenkuang = wenbenkuang_duixiang.text_frame #定位文本框对象中的文本框 wenbenkuang.text = "一起学习" #给文本框的填写"一起学习" 文字 duanluo = wenbenkuang.add_paragraph() #给文本框添加段落 duanluo.text = "python 办公自动化" # 段落的文字为"python 办公自动化" duanluo.font.bold = True #给段落的字体加粗 duanluo.font.size = Pt(40) #给段落的字号设置为40pt duanluo.font.name = "微软雅黑" #给段落的字体类型设置为微软雅黑 wenjian.save("2.pptx") #保存PPT
8.添加图片,同样设置左右宽高
# encoding=utf8 #-*-coding:utf-8 -*- #pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple from pptx import Presentation #导入PPT库 from pptx.util import Cm,Pt #导入单位 Cm,Pt from docx import Document #导入word库 myword = Document() #定义一个word文档 wenjian = Presentation() #打开模板PPT diqigeyangshi = wenjian.slide_layouts[6] #获取模板PPT文件中的第七个样式 huandengpian = wenjian.slides.add_slide(diqigeyangshi) #添加一个幻灯片,使用模板PPT中第七个样式 left = Cm(12) #左为12厘米 top = Cm(3) #距离顶部为3厘米 width = Cm(4) # 宽为4厘米 heigth = Cm(12) #高为12厘米 huandengpian.shapes.add_picture('1.jpg',left,top,height=heigth) # 添加一张照片 wenjian.save("2.pptx") #保存PPT
9.幻灯片中添加表格,并将从excel中获取到的数据添加到幻灯片表格中
# encoding=utf8 #-*-coding:utf-8 -*- #pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple from pptx import Presentation #导入PPT库 from pptx.util import Cm,Pt #导入单位 Cm,Pt from docx import Document #导入word库 import pandas as pd #导入pandas myword = Document() #定义一个word文档 wenjian = Presentation() #打开模板PPT diqigeyangshi = wenjian.slide_layouts[6] #获取模板PPT文件中的第七个样式 huandengpian = wenjian.slides.add_slide(diqigeyangshi) #添加一个幻灯片,使用模板PPT中第七个样式 left = Cm(5) #左为5厘米 top = Cm(5) #距离顶部为5厘米 width = Cm(18) # 宽为18厘米 heigth = Cm(3) #高为3厘米 hang,lie = 4, 3 #4行3列 biaoge = huandengpian.shapes.add_table(hang,lie,left,top,width,heigth).table #添加一个表格 biaoge.columns[0].width = Cm(5) #表格的第一列宽为5 biaoge.rows[0].height = Cm(1) #表格的第一行高为1 excel_data = pd.read_excel("1.xlsx",header=None) # pandas 读取excel中的数据 ,header=None,表示不要读取表头 print(excel_data) print(excel_data.iloc[0,0]) #excel_data.iloc[0,0],表示获取数据中的第0行第0列的数据 for hanghao in range(hang): #获取行号 for liehao in range(lie): #获取列号 biaoge.cell(hanghao,liehao).text = str(excel_data.iloc[hanghao,liehao]) #从excel表中读取数据然后赋值给幻灯片表格中的数据 wenjian.save("2.pptx") #保存PPT
10.
11.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人