最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python-pptx操作PPT的示例詳解

 更新時(shí)間:2023年01月12日 10:28:12   作者:肖永威  
python對(duì)PPT演示文檔讀寫(xiě),是通過(guò)第三方庫(kù)python-pptx實(shí)現(xiàn)的,python-pptx是用于創(chuàng)建和更新?PowerPoint文件的?Python?庫(kù)。本文主要介紹了python-pptx操作PPT的相關(guān)示例,希望對(duì)大家有所幫助

python對(duì)PPT演示文檔讀寫(xiě),是通過(guò)第三方庫(kù)python-pptx實(shí)現(xiàn)的,python-pptx是用于創(chuàng)建和更新 PowerPoint(.pptx)文件的 Python 庫(kù)。

關(guān)于PPT演示文檔與幻燈片模板的內(nèi)容不是本文的重點(diǎn),在此略過(guò)。

1. PPT基本結(jié)構(gòu)在python-pptx下定義

1.1. 演示文檔結(jié)構(gòu)定義

python-pptx對(duì)ppt結(jié)構(gòu)的描述如下圖所示,演示文檔由多個(gè)幻燈片(slide)構(gòu)成,每個(gè)幻燈片由眾多各種形狀(shape)組成。

  • Slide:幻燈片,就是演示文稿中每一頁(yè)的頁(yè)面。
  • Shape:形狀,在每頁(yè)幻燈片內(nèi)插入的方框,可以是形狀,也可以是文本框、圖片、表格等等。
  • Run:文字塊,一般為較少字符。
  • Paragraph:段落,通常有序號(hào)?、1.等。

圖示演示文檔,如下圖所示,由3頁(yè)幻燈片(slide)構(gòu)成,其中,第三頁(yè)幻燈片中的形狀(shape)分別是“標(biāo)題 1”(Title 1)和“圖片”(Picture Placeholder 2)組成。

1.2. 自定義幻燈片母版

使用程序生成演示文檔,最好先自定義幻燈片母版,如下圖所示,定義4頁(yè)模板(slide_layouts)。

注意:shape名稱(chēng)在office軟件下,是中文,而程序讀出來(lái)的可能是英文!

對(duì)于母版內(nèi)容:

Slides_layouts:版式,一個(gè)幻燈片母版由多個(gè)版式組成,索引從0開(kāi)始。

slide_layouts[]傳入0表示獲取的是第一個(gè)版式,傳入1表示獲取的是第二個(gè)版式

Placeholder:占位符:存在PPT母版里面的幻燈片的某一部件:Placeholder

2. python-pptx操作PPT實(shí)踐

2.1. 安裝python-pptx

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-pptx

2.2. 讀取PPT演示文檔

from pptx import Presentation

# 打開(kāi)演示文檔
prs = Presentation('加油站全流程診斷大數(shù)據(jù)系統(tǒng).pptx')
for slide in prs.slides:
    print(slide)

# 寫(xiě)入新文件中 
prs.save('test.pptx')

# 獲取某一頁(yè)Slide中的內(nèi)容

for i, slide in enumerate(prs.slides):
    if i == 3:
        for shape in slide.shapes:
            if shape.has_text_frame:
                text_frame = shape.text_frame
                print(text_frame.text) 

2.3. 基于模板創(chuàng)建新的演示文檔

這里所說(shuō)模板仍然是pptx文件,不是PPT的模板(potx),python-pptx無(wú)法讀取potx模板。也是說(shuō),使用僅有一頁(yè),并且無(wú)內(nèi)容的空演示文檔,內(nèi)含自定義幻燈片母版,如前面所述的母版樣例。

創(chuàng)建新演示文檔過(guò)程如下:

  • 首先,修改首頁(yè)內(nèi)容,例如主題和副主題
  • 接著,按實(shí)際要求,使用具體模板,也就是slide_layouts

代碼過(guò)程如下:

from pptx import Presentation
from PIL import Image

im=Image.open('d:\\02資料\\AI無(wú)感加油.png')

# 修改首頁(yè)
prs= Presentation('template_1.pptx')
slide = prs.slides[0]
title = ['油站全流程診斷輸出測(cè)試頁(yè)',
        '測(cè)試頁(yè)副標(biāo)題']
for i, shape in enumerate(slide.shapes):
    if shape.has_text_frame:
        text_frame = shape.text_frame
        text_frame.text = title[i]

# 插入內(nèi)容測(cè)試
slide = prs.slides.add_slide(prs.slide_layouts[1])  # 用第一個(gè)母版生成一頁(yè)ppt
for shape in slide.placeholders:         # 獲取這一頁(yè)所有的占位符
    phf = shape.placeholder_format
    print(f'{phf.idx}--{shape.name}--{phf.type}')
    print('shape name ', shape.name)
    if shape.name ==  'Title 1':
        shape.text = f'目標(biāo)'  #在標(biāo)題占位符中填寫(xiě)“目標(biāo)”
    else:
        shape.text = f'內(nèi)容'  #在其他占位符中填寫(xiě)“內(nèi)容”        
        
# 插入圖片測(cè)試
im.save('tmp.png') #從外部(數(shù)據(jù)庫(kù))讀取的圖片,臨時(shí)存儲(chǔ)
slide = prs.slides.add_slide(prs.slide_layouts[2])  # 用第一個(gè)母版生成一頁(yè)ppt
for shape in slide.placeholders:         # 獲取這一頁(yè)所有的占位符
    phf = shape.placeholder_format
    print(f'{phf.idx}--{shape.name}--{phf.type}')
    print('shape name ', shape.name)
    if shape.name ==  'Title 1':
        shape.text = f'插入圖片測(cè)試'  #在標(biāo)題占位符中填寫(xiě)“目標(biāo)”
    else:
        shape.insert_picture('tmp.png')  #在其他占位符中填寫(xiě)“圖片”
        
prs.save('向占位符內(nèi)填寫(xiě)內(nèi)容_1.pptx')

附加內(nèi)容:列出對(duì)象屬性。

for i, shape in enumerate(slide.shapes):
    print('對(duì)象類(lèi)型', shape.shape_type)
    print('對(duì)象屬性列表', dir(shape))

shape部分屬性列表:

  • ‘has_chart’,
  • ‘has_table’,
  • ‘has_text_frame’,
  • ‘height’,
  • ‘is_placeholder’,
  • ‘name’,
  • ‘part’,
  • ‘placeholder_format’,
  • ‘shape_id’,
  • ‘shape_type’,
  • ‘text’,
  • ‘text_frame’,
  • ‘top’,
  • ‘width’

3. 小結(jié)

對(duì)于數(shù)據(jù)分析結(jié)果規(guī)范化輸出,python-pptx功能基本滿足,使用條件是精通PPT,設(shè)計(jì)出合適的母版,供程序交互使用。

以上就是使用python-pptx操作PPT的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于python-pptx操作PPT的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python接口自動(dòng)化框架實(shí)戰(zhàn)

    python接口自動(dòng)化框架實(shí)戰(zhàn)

    這篇文章主要介紹了python接口自動(dòng)化框架實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • TensorFlow實(shí)現(xiàn)簡(jiǎn)單的CNN的方法

    TensorFlow實(shí)現(xiàn)簡(jiǎn)單的CNN的方法

    這篇文章主要介紹了TensorFlow實(shí)現(xiàn)簡(jiǎn)單的CNN的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • PyCharm虛擬環(huán)境中使用pip指令

    PyCharm虛擬環(huán)境中使用pip指令

    本文主要介紹了PyCharm虛擬環(huán)境中使用pip指令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 對(duì)PyQt5基本窗口控件 QMainWindow的使用詳解

    對(duì)PyQt5基本窗口控件 QMainWindow的使用詳解

    今天小編就為大家分享一篇對(duì)PyQt5基本窗口控件 QMainWindow的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 基于Django的Admin后臺(tái)實(shí)現(xiàn)定制簡(jiǎn)單監(jiān)控頁(yè)

    基于Django的Admin后臺(tái)實(shí)現(xiàn)定制簡(jiǎn)單監(jiān)控頁(yè)

    Django自帶的后臺(tái)管理是Django明顯特色之一,可以讓我們快速便捷管理數(shù)據(jù)。后臺(tái)管理可以在各個(gè)app的admin.py文件中進(jìn)行控制。本文將主要介紹如何利用Admin后臺(tái)實(shí)現(xiàn)監(jiān)控頁(yè)的定制,快來(lái)和小編一起學(xué)習(xí)一下吧
    2021-12-12
  • Flask 讓jsonify返回的json串支持中文顯示的方法

    Flask 讓jsonify返回的json串支持中文顯示的方法

    下面小編就為大家分享一篇Flask 讓jsonify返回的json串支持中文顯示的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Python實(shí)現(xiàn)批量設(shè)置圖片背景為透明

    Python實(shí)現(xiàn)批量設(shè)置圖片背景為透明

    我們?nèi)粘I钪兄谱鱌PT等教學(xué)資源時(shí),需要批量去除圖片背景,就可以使用 Python 的 rembg 庫(kù),下面我們就來(lái)看看如何操作rembg實(shí)現(xiàn)批量設(shè)置圖片背景為透明吧
    2024-11-11
  • 一文帶你精通Python中exec函數(shù)的高級(jí)技巧

    一文帶你精通Python中exec函數(shù)的高級(jí)技巧

    在?Python?中,exec?是一個(gè)內(nèi)置函數(shù),允許在運(yùn)行時(shí)動(dòng)態(tài)執(zhí)行?Python?代碼,本文將詳細(xì)介紹?Python?exec?函數(shù)的高級(jí)用法,包括動(dòng)態(tài)代碼生成、執(zhí)行外部文件等內(nèi)容,希望對(duì)大家有所幫助
    2023-11-11
  • 淺談tf.train.Saver()與tf.train.import_meta_graph的要點(diǎn)

    淺談tf.train.Saver()與tf.train.import_meta_graph的要點(diǎn)

    這篇文章主要介紹了淺談tf.train.Saver() 與tf.train.import_meta_graph的要點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python extract及contains方法代碼實(shí)例

    Python extract及contains方法代碼實(shí)例

    這篇文章主要介紹了Python extract及contains方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

深圳市| 周至县| 陆河县| 内乡县| 石棉县| 板桥市| 乌什县| 大英县| 双流县| 洪泽县| 唐海县| 资中县| 江安县| 缙云县| 那坡县| 邢台市| 淮北市| 瓮安县| 中江县| 封丘县| 吉隆县| 曲阳县| 永春县| 仙桃市| 文昌市| 靖边县| 曲水县| 灌南县| 福海县| 霸州市| 台中县| 保康县| 将乐县| 黄大仙区| 鄂托克旗| 扶余县| 涟水县| 徐闻县| 靖江市| 霸州市| 龙门县|