欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python讀取Excel數(shù)據(jù)實現(xiàn)批量生成PPT

 更新時間:2022年05月31日 08:34:18   作者:J哥  
我們常常面臨著大量的重復性工作,通過人工方式處理往往耗時耗力易出錯。而Python在辦公自動化方面具有天然優(yōu)勢。本文將利用讀取Excel數(shù)據(jù)并實現(xiàn)批量生成PPT,需要的可以參考一下

背景

大家好,我是J哥。

我們常常面臨著大量的重復性工作,通過人工方式處理往往耗時耗力易出錯。而Python在辦公自動化方面具有天然優(yōu)勢,分分鐘解決你的辦公需求,提前下班不是夢。

需求

前幾天我發(fā)表了一篇辦公自動化文章Python讀取Excel數(shù)據(jù)并批量生成合同,獲得許多小伙伴的認可和喜歡。其中有一位粉絲提議,能否出一篇PPT自動化的教程,通過讀取Excel數(shù)據(jù)批量生成幻燈片。于是,我以豆瓣電影數(shù)據(jù)為例進行了PPT自動化制作,先看看最終效果:

圖片

準備

PPT數(shù)據(jù)

我們首先需要準備填充PPT的數(shù)據(jù),我這里用的是豆瓣電影數(shù)據(jù),共有25條電影信息,包含title,director,date,country,types共5個字段,存儲方式為Excel。數(shù)據(jù)預覽如下:

圖片

另外,由于PPT還需要批量插入圖片,因此我這里也準備了25張電影海報圖片,存放在文件夾movie_pic中。

圖片

PPT模板

我們首先需要新建一個PPT模板,這個操作比較簡單,直接進入到PPT母版視圖,然后選擇模板中第一張幻燈片的布局,依次插入電影名稱、圖片、類型、主演和導演、年份和國家6個占位符,其中除了圖片其他都是內(nèi)容占位符。這里一定要注意插入的順序,后面代碼也是根據(jù)占位符順序來進行內(nèi)容填充。為了美化PPT,我們可以個性化添加LOGO,背景圖片,設(shè)置字體顏色大小等等。

實戰(zhàn)

導入相關(guān)模塊

# 讀取圖片文件
import os
# 讀取Excel數(shù)據(jù)
import pandas as pd
# 操作PPT
from pptx import Presentation

讀取電影數(shù)據(jù)

pandas讀取excel數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)為字典格式。

#讀取電影數(shù)據(jù)
df = pd.read_excel(r".\ppt素材\top250.xlsx")
data = df.to_dict('records')
print(data)

讀取PPT模板插入數(shù)據(jù)

Presentation()方法讀取PPT模板,然后遍歷所有電影數(shù)據(jù)(25個字典),選擇母版樣式中的第一張幻燈片即layout[0],接著遍歷幻燈片中的所有占位符,這里用到enumerate()獲取站位符的序號。將每個字典中的值插入到對應的占位符中,最后用save()方法保存新生成的PPT。

# 讀取母版文件構(gòu)建PPT的對象
my_ppt = Presentation(r".\ppt素材\ppt模板.pptx")
# 獲取母版所有幻燈片布局
layout = my_ppt.slide_layouts
# 遍歷所有電影數(shù)據(jù)
for x in data:
    #print(x)
    #選擇模板中第一個幻燈片的布局并創(chuàng)建新幻燈片
    slide = my_ppt.slides.add_slide(layout[0])
    #當前幻燈片中所有的占位符
    placeholders = slide.shapes.placeholders
    for i,pl in enumerate(placeholders):
        if i == 0:
            pl.text = x["title"]
        elif i == 2:
            pl.text = x["types"]
        elif i == 3:
            pl.text = x["director"]
        elif i == 4:
            pl.text = str(x["date"])
        elif i == 5:
            pl.text = x["country"]
my_ppt.save("result.pptx")

由于圖片是單獨存放在文件夾movie_pic中,我們需要os.path.join()方法拼接每張圖片的完整路徑,然后用insert_picture()方法將圖片插入到PPT中。

# 電影海報存儲路徑
images = r".\ppt素材\movie_pic"

# 遍歷所有電影數(shù)據(jù)
for x in data:
    slide = my_ppt.slides.add_slide(layout[0])
    placeholders = slide.shapes.placeholders
    for i,pl in enumerate(placeholders):
        if i == 0:
            pl.text = x["title"]
        elif i == 1:
            img_path = os.path.join(images,f'{x["title"]}.jpg')
            print(img_path)
            pl.insert_picture(img_path)

以上就是Python讀取Excel數(shù)據(jù)實現(xiàn)批量生成PPT的詳細內(nèi)容,更多關(guān)于Python生成PPT的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python?Requests庫知識匯總

    Python?Requests庫知識匯總

    這篇文章主要介紹了Python?Requests庫學習總結(jié),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • python 根據(jù)時間來生成唯一的字符串方法

    python 根據(jù)時間來生成唯一的字符串方法

    今天小編就為大家分享一篇python 根據(jù)時間來生成唯一的字符串方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python常見異常處理總結(jié)

    Python常見異常處理總結(jié)

    這篇文章主要介紹了Python常見異常處理總結(jié),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • 初窺Python門縫了解入門路徑

    初窺Python門縫了解入門路徑

    Python由荷蘭數(shù)學和計算機科學研究學會的Guido van Rossum 于1990 年代初設(shè)計,作為一門叫做ABC語言的替代品。 Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊?/div> 2021-10-10
  • Python Numpy庫datetime類型的處理詳解

    Python Numpy庫datetime類型的處理詳解

    這篇文章主要介紹了Python Numpy庫datetime類型的處理詳解,Python中自帶的處理時間的模塊就有time 、datetime、calendar,另外還有擴展的第三方庫,如dateutil等等。。當我們用NumPy庫做數(shù)據(jù)分析時,如何轉(zhuǎn)換時間呢?需要的朋友可以參考下
    2019-07-07
  • Python實現(xiàn)發(fā)送與接收郵件的方法詳解

    Python實現(xiàn)發(fā)送與接收郵件的方法詳解

    這篇文章主要介紹了Python實現(xiàn)發(fā)送與接收郵件的方法,結(jié)合實例形式分析了Python基于smtplib庫使用SMTP協(xié)議進行郵件發(fā)送及基于poplib庫使用POP3服務器接收郵件的相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • python中enumerate函數(shù)用法實例分析

    python中enumerate函數(shù)用法實例分析

    這篇文章主要介紹了python中enumerate函數(shù)用法,以實例形式較為詳細的分析了enumerate函數(shù)的功能、定義及使用技巧,需要的朋友可以參考下
    2015-05-05
  • python爬取之json、pickle與shelve庫的深入講解

    python爬取之json、pickle與shelve庫的深入講解

    這篇文章主要給大家介紹了關(guān)于python爬取之json、pickle與shelve庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • python3+PyQt5實現(xiàn)自定義窗口部件Counters

    python3+PyQt5實現(xiàn)自定義窗口部件Counters

    這篇文章主要為大家詳細介紹了python3+PyQt5實現(xiàn)自定義窗口部件,Counters自定窗口部件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 用python寫一個帶有g(shù)ui界面的密碼生成器

    用python寫一個帶有g(shù)ui界面的密碼生成器

    這篇文章主要介紹了用python寫一個帶有g(shù)ui界面的密碼生成器,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11

最新評論