随笔 - 633,  文章 - 0,  评论 - 13,  阅读 - 48万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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.

 

posted on   大话人生  阅读(359)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示