Python 操作 PPT 文件:從新手到高手的實戰指南

在日常工作和學習中,PPT 是我們展示信息和進行演示的重要工具。無論是制作報告、演講還是教學課件,PPT 都扮演著不可或缺的角色。然而,當面對大量重復性的 PPT 編輯任務時,手動操作不僅耗時耗力,還容易出錯。幸運的是,Python 提供了強大的庫來操作 PPT 文件,讓我們能夠高效地自動化這些任務。

今天,就讓我們一起深入學習如何使用 Python 操作 PPT 文件,從基礎的幻燈片創建、編輯到高級的樣式設置和內容提取,全方位提升你的 PPT 處理能力。

一、Python 操作 PPT 文件的利器:python-pptx

在 Python 生態系統中,python-pptx 是一個專門用于操作 PPT 文件的庫。它支持創建、修改和讀取 .pptx 格式的 PPT 文件,功能強大且易于使用。通過 python-pptx,我們可以輕松地添加文本、圖片、圖表,設置樣式,甚至提取幻燈片內容。

(一)安裝 python-pptx

在開始之前,我們需要先安裝 python-pptx 庫。打開你的終端或命令提示符,運行以下命令:

pip install python-pptx

安裝完成后,你就可以開始使用 python-pptx 來操作 PPT 文件了。

二、創建 PPT 文件

(一)創建一個簡單的 PPT

from pptx import Presentation# 創建一個新的 PPT
prs = Presentation()# 添加一個標題幻燈片
title_slide_layout = prs.slide_layouts[5]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "我的第一個 PPT"
subtitle.text = "這是一個用 Python 創建的 PPT"# 保存 PPT
prs.save('example.pptx')

運行上述代碼后,你將在當前目錄下看到一個名為 example.pptx 的 PPT 文件,其中包含一個標題幻燈片。

(二)添加更多內容

除了基本的標題幻燈片,我們還可以在 PPT 中添加更多內容,如文本框、圖片、圖表等。

1. 添加文本框
# 添加一個普通幻燈片
bullet_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes
title_shape = shapes.title
body_shape = shapes.placeholders[1]
title_shape.text = "幻燈片標題"# 添加文本框
tf = body_shape.text_frame
tf.text = "這是第一點內容"
p = tf.add_paragraph()
p.text = "這是第二點內容"
p.level = 1
p.font.bold = True
2. 添加圖片
# 添加圖片
left = top = Inches(1)
pic = slide.shapes.add_picture('image.jpg', left, top, height=Inches(4))
3. 添加圖表
# 添加圖表
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPEchart_data = CategoryChartData()
chart_data.categories = ['東', '西', '南', '北']
chart_data.add_series('系列 1', (19.2, 21.4, 16.7, 22.3))x, y, cx, cy = Inches(2), Inches(2), Inches(4.5), Inches(3)
chart = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data
).chart

三、編輯 PPT 文件

(一)修改幻燈片內容

除了創建新的 PPT,我們還可以使用 python-pptx 打開現有的 PPT 文件并進行編輯。

# 打開一個現有的 PPT 文件
prs = Presentation('example.pptx')# 修改第一個幻燈片的內容
slide = prs.slides[0]
title = slide.shapes.title
title.text = "這是修改后的標題"# 保存 PPT
prs.save('example_modified.pptx')

(二)添加樣式

python-pptx 提供了豐富的樣式設置功能,我們可以對幻燈片中的文本、圖片、圖表等進行樣式設置。

1. 設置文本樣式
# 設置文本樣式
from pptx.util import Pt
from pptx.enum.text import PP_ALIGN# 添加文本框
tf = body_shape.text_frame
tf.text = "這是第一點內容"
p = tf.add_paragraph()
p.text = "這是第二點內容"
p.level = 1
p.font.bold = True
p.font.size = Pt(14)
p.font.italic = True
p.alignment = PP_ALIGN.CENTER
2. 設置圖片樣式
# 設置圖片樣式
pic.width = Inches(5)
pic.height = Inches(3)

四、提取 PPT 文件內容

(一)提取文本內容

除了創建和編輯 PPT,python-pptx 還可以用來提取 PPT 文件中的內容。

# 打開一個現有的 PPT 文件
prs = Presentation('example.pptx')# 提取所有幻燈片的文本內容
for slide in prs.slides:for shape in slide.shapes:try:print(shape.text)except AttributeError:pass

(二)提取圖表內容

# 提取圖表內容
for slide in prs.slides:for shape in slide.shapes:if shape.has_chart:chart = shape.chartprint(chart.chart_type)print(chart.series[0].name)print(chart.series[0].values)

五、高級應用:生成批量 PPT

(一)批量生成 PPT

python-pptx 的強大之處在于它可以用于自動化生成大量 PPT。例如,我們可以根據一個數據表生成多個 PPT。

import pandas as pd# 讀取數據
data = pd.read_excel('data.xlsx')# 遍歷數據,生成 PPT
for index, row in data.iterrows():prs = Presentation()title_slide_layout = prs.slide_layouts[5]slide = prs.slides.add_slide(title_slide_layout)title = slide.shapes.titlesubtitle = slide.placeholders[1]title.text = f"文檔 {index + 1}"subtitle.text = f"姓名:{row['姓名']}\n年齡:{row['年齡']}\n描述:{row['描述']}"prs.save(f'文檔_{index + 1}.pptx')

六、總結

通過本文的介紹,你已經掌握了如何使用 Python 的 python-pptx 庫來操作 PPT 文件。無論是創建新的 PPT、編輯現有 PPT,還是提取 PPT 內容,python-pptx 都能輕松應對。此外,結合 Pandas 等庫,我們還可以實現批量生成 PPT,大大提高工作效率。

  • 創建 PPT:使用 Presentation() 創建新 PPT,添加標題幻燈片、文本框、圖片和圖表。
  • 編輯 PPT:打開現有 PPT,修改內容,設置樣式。
  • 提取內容:提取 PPT 中的文本和圖表內容。
  • 批量生成:結合 Pandas,根據數據表生成多個 PPT。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94527.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94527.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

系統設計中的冪等性

1. 基本概念 冪等性(Idempotence)是系統設計中經常提到的概念。如果某個操作執行一次或多次都能產生相同的結果,那么它就是冪等的。2. 代碼示例 下面這段代碼是冪等的。無論你調用多少次,show_my_button 的最終狀態都是False。 de…

Pandas vs Polars Excel 數據加載對比報告

?? Pandas vs Polars Excel 數據加載對比報告 1. 數據基本情況 數據文件:data.xlsx 數據規模:23,670 行 3 列 字段: case_time:日期/時間 case_name:公司名稱(字符串) board:所屬板塊(字符串) 2. 加載方式與代碼 Pandas import pandas as pdfrom tools import…

Kafka 為什么具有高吞吐量的特性?

Kafka 高吞吐量原因:面試題總結 在面試中,Kafka 的高吞吐量設計是高頻考點,核心需圍繞“架構設計”“存儲優化”“網絡效率”“資源利用”四個維度展開,以下是結構化總結: 一、核心架構:并行化與分層設計分…

MCP 協議原理與系統架構詳解—從 Server 配置到 Client 應用

1. MCP MCP(Model Context Protocol,模型上下文協議)是開發 Claude 模型的(Anthropic)公司推出的一個開放標準協議,就像是一個 “通用插頭” 或者 “USB 接口”,制定了統一的規范,不管是連接數據庫、第三方…

uniapp安卓真機調試問題解決總結

uniapp安卓真機調試遇到各種連接不上問題: 手機上打開調試數據線不行,換數據線電腦重啟手機重啟拔出數據線,換個USB插口。

Linux Qt創建和調用so庫的詳細教程

一、創建so庫1.文件-->新建文件或項目-->Library->C Library,如下圖2.工程命名為Example3.一直下一步就可以4、工程創建完成,如下圖5、刪除Example_global.h6、配置.pro文件# 設置輸出目錄 DESTDIR $$PWD/output #只生成.so文件 CONFIG plugi…

【深度學習】蒙特卡羅方法:原理、應用與未來趨勢

作者選擇了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰寫的《Deep Learning》(人工智能領域的經典教程,深度學習領域研究生必讀教材),開始深度學習領域學習,深入全面的理解深度學習的理論知識。 之前的文章參考下面的鏈接&#xf…

區塊鏈技術原理(18)-以太坊共識機制

文章目錄前言什么是共識?什么是共識機制?共識機制的核心目標共識機制的類型PoW(工作量證明)協議:(2015-2022)PoS(權益證明)協議:(PoS,…

java基礎(十五)計算機網絡

網絡模型概述 為了使得多種設備能通過網絡相互通信,并解決各種不同設備在網絡互聯中的兼容性問題,國際標準化組織(ISO)制定了開放式系統互聯通信參考模型(OSI模型)。與此同時,TCP/IP模型作為實際…

idea將服務封裝為一個jar包

你使用的是 IntelliJ IDEA 2018,這個版本雖然不是最新的,但完全支持通過 圖形化界面 打 JAR 包(無需命令行),非常適合你在公司內部將 Snowflake 模塊打包成通用組件。下面我將 手把手、一步一步、圖文流程式地教你&…

ZYNQ [Petalinux的運行]

一、下載ubuntu 下載地址很多,這里提供了一個:http://mirrors.aliyun.com/ubuntu-releases/14.04/ 推薦開始瀏覽器下載之后復制下載鏈接使用迅雷下載。 二、虛擬機安裝Ubuntu vmware中安裝Ubutun–這部分不展示 安裝ssh sudo apt install openssh-s…

excel 破解工作表密碼

破解Excel工作表密碼可通過易用寶工具、VBA腳本或修改文件格式實現,具體方法需根據文件類型和密碼保護類型選擇。 ?使用易用寶工具(推薦)? 適用于Excel 2007及以上版本,操作簡便且無需編程基礎: 下載安裝Excel易用…

Deepseek + RAGFlow 搭建本地知識庫問答系統

Deepseek RAGFlow 搭建本地知識庫問答系統原因為什么要本地部署RAG模型和微調模型區別本地部署流程1. 下載 ollama ,通過ollama把Deepseek模型下載到本地運行。2. 下載RAGFlow 源代碼和 Docker ,通過Docker部署RAGFlow。3. 在RAGFlow中構建個人知識庫并…

elementui附件上傳自定義文件列表,實現傳完即可預覽、下載、刪除,二次封裝el-upload

背景當前 elementui 的文件上傳組件在上傳完文件之后只支持刪除,用戶希望可以看到附件信息,還可以預覽自己剛剛上傳但未提交的文件,還希望可以下載,因為公司的下載功能當前是通過 OnlyOffice 實現了文件格式轉換,所以我…

linux的conda配置與應用階段的簡單指令備注

1.新建某虛擬環境 conda create -n 虛擬環境名 pythonPython版本號 (-y)2.退出當前虛擬環境 conda deactivate3.查看當前conda環境下所有的虛擬環境 conda info --envs4.查看conda版本和位置 conda --versionwhich conda5.激活某個conda虛擬環境 conda activate 虛擬環境名

虛擬化技術 ——KVM

一、KVM 技術簡介 KVM(Kernel-based Virtual Machine,基于內核的虛擬機)是 Linux 內核原生支持的全虛擬化解決方案,依托 CPU 的硬件虛擬化技術(Intel VT-x/AMD-V)實現高效的虛擬機運行。它將 Linux 內核轉…

線程間Bug檢測工具Canary

Canary1.Introduction2.Approach2.1.數據依賴分析2.2.線程間依賴分析3.Bug檢測4.Evaluation參考文獻1.Introduction 主要做跨線程value-flow bug檢查,下面代碼中兩個函數中存在指向關系:1. x→o1x \rightarrow o_1x→o1?, b→o2b \rightarrow o_2b→o2…

AEB 強制來臨,東軟睿馳Next-Cube-Lite有望成為汽車安全普惠“破局器”

AEB 強制時代正在悄然譜寫“普惠安全”的行業底色。日前,備受關注的強制性國家標準《輕型汽車自動緊急制動系統技術要求及試驗方法》(以下簡稱“新國標”)意見征求階段已經結束。該標準將替代現行國標GB/T 39901-2021,計劃于2028年…

css的white-space: pre

用戶從別的地方復制的配置文件,粘貼到輸入框內,需要保留原始格式發送給后端。核心步驟:### 1. 格式保持機制 - white-space: pre :這是最關鍵的CSS屬性,確保所有空格、制表符、換行符都被保留 - wrap"off" &…

【AI解讀源碼系列】ant design mobile——Space間距

前言 筆者目前業務主要圍繞ant design mobile組件庫來交付H5前端工作。 故此出此專欄來解讀每一個組件是如何實現的。 本文基于AI來解讀Space組件。 文檔鏈接: https://mobile.ant.design/zh/components/space 源碼: https://github.com/ant-design/ant-…