通過python-pptx模塊操作ppt文件的方法
ppt通過其精美的可視化技巧以及良好的演示效果,成為了職場(chǎng)人士的必備技能。ppt的設(shè)計(jì)是一門大學(xué)問,無論是設(shè)計(jì)技巧,還是操作方法,都衍生出了專門的課程。
本文主要介紹python操作ppt的技巧,編程的優(yōu)勢(shì)在于處理速度,對(duì)于高大上的ppt設(shè)計(jì),還是需要"以人為本", 所以該模塊的使用場(chǎng)景主要是ppt基本元素的提取和添加,適合大量?jī)?nèi)容的轉(zhuǎn)化,比如word轉(zhuǎn)ppt, 減少大量繁瑣的人工操作,盡管提供了一些基本的樣式設(shè)計(jì),但是并不能滿足日常辦公對(duì)ppt美觀性的要求。
在該模塊中,將ppt拆分為了以下多個(gè)元素
1. presentations, 表示整個(gè)ppt文檔
2. sliders. 表示ppt文檔的每一頁(yè)
3. shapes
4. placeholders
上述分類對(duì)應(yīng)的常用操作如下
1. presentations
用于打開,創(chuàng)建,保存ppt文檔,用法如下
>>> from pptx import Presentation # 創(chuàng)建新的ppt文檔 >>> prs = Presentation() # 打開一個(gè)ppt文檔 >>> prs = Presentation('input.pptx') # 保存ppt文檔 >>> prs.save('test.pptx')
2. slides
在創(chuàng)建一頁(yè)ppt時(shí),需要指定對(duì)應(yīng)的布局,在該模塊中, 內(nèi)置了以下9種布局
1. Title
2. Title and Content
3. Section Header
4. Two Content
5. Comparison
6. Title Only
7. Blank
8. Content with Caption
9. Picture with Caption
通過數(shù)字下標(biāo)0到9來訪問,指定布局添加一頁(yè)ppt的用法如下
>>> title_slide_layout = prs.slide_layouts[0] >>> slide = prs.slides.add_slide(title_slide_layout)
3. shapes
shapes表示容器,在制作ppt時(shí),各種基本元素,比如文本框,表格,圖片等都占據(jù)了ppt的一個(gè)部分,或者矩形區(qū)域,或者其他各種自定義的形狀。shapes表示所有基本元素的和, 通過如下方式來訪問對(duì)應(yīng)的shapes
shapes = slide.shapes
對(duì)于shapes而言,我們可以獲取和設(shè)置其各種屬性,比如最常用的text屬性,用法如下
>>> shapes.text = 'hello world'
還可以通過add系列方法來添加各種元素,添加文本框的方法如下
>>> from pptx.util import Inches, Pt >>> left = top = width = height = Inches(1) >>> txBox = slide.shapes.add_textbox(left, top, width, height) >>> tf = txBox.text_frame >>> tf.text = "first paragraph" >>> p = tf.add_paragraph() >>> p.text = "second paragraph"
添加表格的方法如下
>>> rows = cols = 2 >>> left = top = Inches(2.0) >>> width = Inches(6.0) >>> height = Inches(0.8) >>> table = shapes.add_table(rows, cols, left, top, width, height).table >>> table.columns[0].width = Inches(2.0) >>> table.columns[1].width = Inches(4.0) >>> # write column headings >>> table.cell(0, 0).text = 'Foo' >>> table.cell(0, 1).text = 'Bar'
4. placeholders
shapes表示所有基本元素的總和,而placeholders則表示每一個(gè)具體的元素,所以placeholders是shapes的子集, 通過數(shù)字下標(biāo)來訪問對(duì)應(yīng)的placeholder,用法如下
>>> slide.placeholders[1] <pptx.shapes.placeholder.SlidePlaceholder object at 0x03F73A90> >>> slide.placeholders[1].placeholder_format.idx 1 >>> slide.placeholders[1].name 'Subtitle 2'
placeholders是頁(yè)面上已有的元素,獲取對(duì)應(yīng)的placeholders之后,可以通過insert系列方法來向其中新添元素。
了解上述層級(jí)結(jié)構(gòu),有助于我們對(duì)ppt的讀寫操作。除了寫操作之外,也可以通過讀操作來批量提取ppt中的特定元素,以文字為例,提取方式如下
from pptx import Presentation prs = Presentation(path_to_presentation) text_runs = [] for slide in prs.slides: for shape in slide.shapes: if not shape.has_text_frame: continue for paragraph in shape.text_frame.paragraphs: for run in paragraph.runs: text_runs.append(run.text)
通過該模塊,可以快速搭建ppt的基本框架,也可以批量提取ppt中的特定元素,比如提取文字轉(zhuǎn)換成word, 或者提取表格轉(zhuǎn)換成excel文件??偠灾?,該模塊適合替代大量繁瑣的人工復(fù)制粘貼操作。
到此這篇關(guān)于通過python-pptx模塊操作ppt文件的方法的文章就介紹到這了,更多相關(guān)python-pptx模塊操作ppt文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決python訪問報(bào)錯(cuò):jinja2.exceptions.TemplateNotFound:index.html
這篇文章主要介紹了解決python訪問報(bào)錯(cuò):jinja2.exceptions.TemplateNotFound:index.html,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Python 統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字代碼詳解
這篇文章主要介紹了Python 統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03python實(shí)現(xiàn)圖書館借閱系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖書館借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03linux環(huán)境中沒有網(wǎng)絡(luò)怎么下載python
在本篇文章里小編給大家分享了關(guān)于linux環(huán)境中沒有網(wǎng)絡(luò)怎么下載python的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。2019-07-07對(duì)Python中g(shù)ensim庫(kù)word2vec的使用詳解
今天小編就為大家分享一篇對(duì)Python中g(shù)ensim庫(kù)word2vec的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05matplotlib bar()實(shí)現(xiàn)多組數(shù)據(jù)并列柱狀圖通用簡(jiǎn)便創(chuàng)建方法
這篇文章主要介紹了matplotlib bar()實(shí)現(xiàn)多組數(shù)據(jù)并列柱狀圖通用簡(jiǎn)便創(chuàng)建方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07