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

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

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

背景

大家好,我是J哥。

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

需求

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

圖片

準(zhǔn)備

PPT數(shù)據(jù)

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

圖片

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

圖片

PPT模板

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

實(shí)戰(zhàn)

導(dǎo)入相關(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個(gè)字典),選擇母版樣式中的第一張幻燈片即layout[0],接著遍歷幻燈片中的所有占位符,這里用到enumerate()獲取站位符的序號(hào)。將每個(gè)字典中的值插入到對(duì)應(yīng)的占位符中,最后用save()方法保存新生成的PPT。

# 讀取母版文件構(gòu)建PPT的對(duì)象
my_ppt = Presentation(r".\ppt素材\ppt模板.pptx")
# 獲取母版所有幻燈片布局
layout = my_ppt.slide_layouts
# 遍歷所有電影數(shù)據(jù)
for x in data:
    #print(x)
    #選擇模板中第一個(gè)幻燈片的布局并創(chuàng)建新幻燈片
    slide = my_ppt.slides.add_slide(layout[0])
    #當(dāng)前幻燈片中所有的占位符
    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")

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

# 電影海報(bào)存儲(chǔ)路徑
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ù)實(shí)現(xiàn)批量生成PPT的詳細(xì)內(nèi)容,更多關(guān)于Python生成PPT的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

上犹县| 涞源县| 镇巴县| 勐海县| 沭阳县| 栖霞市| 伊川县| 南城县| 巩义市| 砀山县| 常德市| 开封县| 兰溪市| 哈尔滨市| 贞丰县| 科尔| 武隆县| 合山市| 乐平市| 芜湖县| 于田县| 潢川县| 涡阳县| 新闻| 海丰县| 瑞金市| 休宁县| 玛曲县| 洛隆县| 凌云县| 景谷| 泸溪县| 磐石市| 阳江市| 墨脱县| 延津县| 桃园县| 上栗县| 象州县| 日喀则市| 法库县|