當前位置: 妍妍網 > 碼農

Python辦公神器:教你使用python批次制作PPT

2024-03-21碼農

介紹

  • 本文將介紹如何使用 openpyxl pptx 庫來批次制作PPT獎狀。

  • 本文假設你已經安裝了python和這兩個庫。

  • 本文的場景是:一名基層人員,要給一次比賽活動獲獎的500名選手制作獎狀,並且獎狀需要做成PPT在頒獎大會上電子展示,手上有一份名單 list.xlsx 和 PPT 獎狀樣版 temp.pptx

  • 準備工作

  • 首先,我們需要匯入 openpyxl python-pptx 庫,以及其他一些輔助庫,如下:

  • import openpyxl
    from pptx import Presentation
    from pptx.util import Inches, Pt
    import os

  • 然後,我們需要定義一些常量,如檔名,字型,顏色等,如下:

  • # 檔名
    EXCEL_FILE = 'list.xlsx'
    PPT_FILE = 'temp.pptx'
    OUTPUT_DIR = 'output'
    # 字型
    FONT_NAME = '微軟雅黑'
    FONT_SIZE = 36
    FONT_COLOR = 'FFFFFF'
    # 占位符索引
    NAME_INDEX = 0
    AWARD_INDEX = 1
    DATE_INDEX = 2

  • 接下來,我們需要讀取Excel檔,獲取獲獎者的姓名,獎項,以及日期,如下:

  • # 讀取Excel檔
    wb = openpyxl.load_workbook(EXCEL_FILE)
    ws = wb.active
    # 獲取獲獎者列表
    awardees = []
    for row in ws.iter_rows(min_row=2, values_only=True):
    name, award, date = row
    awardees.append((name, award, date))

  • 最後,我們需要建立一個輸出目錄,用來存放生成的PPT檔,如下:

  • # 建立輸出目錄
    ifnot os.path.exists(OUTPUT_DIR):
    os.mkdir(OUTPUT_DIR)

    生成PPT獎狀

  • 首先,我們需要載入PPT樣版檔,獲取投影片母版,以及占位符物件,如下:

  • # 載入PPT樣版檔
    prs = Presentation(PPT_FILE)
    # 獲取投影片母版
    slide_layout = prs.slide_layouts[0]
    # 獲取占位符物件
    placeholders = slide_layout.placeholders

  • 然後,我們需要遍歷獲獎者列表,為每個獲獎者生成一個PPT獎狀,如下:

  • # 遍歷獲獎者列表
    for name, award, date in awardees:
    # 生成一個PPT獎狀
    slide = prs.slides.add_slide(slide_layout)
    # 填充姓名
    name_placeholder = slide.placeholders[NAME_INDEX]
    name_placeholder.text = name
    name_placeholder.font.name = FONT_NAME
    name_placeholder.font.size = Pt(FONT_SIZE)
    name_placeholder.font.color.rgb = FONT_COLOR
    # 填充獎項
    award_placeholder = slide.placeholders[AWARD_INDEX]
    award_placeholder.text = award
    award_placeholder.font.name = FONT_NAME
    award_placeholder.font.size = Pt(FONT_SIZE)
    award_placeholder.font.color.rgb = FONT_COLOR
    # 填充日期
    date_placeholder = slide.placeholders[DATE_INDEX]
    date_placeholder.text = date
    date_placeholder.font.name = FONT_NAME
    date_placeholder.font.size = Pt(FONT_SIZE)
    date_placeholder.font.color.rgb = FONT_COLOR

  • 最後,我們需要保存生成的PPT檔,如下:

  • # 保存生成的PPT檔
    output_file = os.path.join(OUTPUT_DIR, 'awards.pptx')
    prs.save(output_file)

    總結

  • 本文介紹了如何使用 openpyxl python-pptx 庫來批次制作PPT獎狀。

  • 本文透過一個實際的場景,演示了如何讀取Excel檔,寫入PPT檔,以及使用PPT占位符來填充內容。

  • Sora最近老火了,Sora 的出現會對短視訊、廣告、遊戲、影視行業等產業格局一定會被重塑,目前 Sora 還沒正式開放註冊,大家看到的使用體驗大部份都來自官網,或者少部份的使用者分享。

    為了避免更多讀者受騙,我們直接給大家整了一個免費的。

    註意是下面【 Python都知道 】公眾號,不是本公眾號,點選下方的公眾號卡片,然後回復【 sora ,即可獲取最新 Sora 的最全資料。


    目前已經分享了,如何申請 Sora 的內測,以及最新關於 Sora 的技術特點,使用教程、變現機遇等等。

    大家如果想領取這份資料,可以點選下方的公眾號卡片,然後回復 sora ,即可獲取最新 Sora 的最全資料。

    需要提醒大家的是,Sora 目前還沒有完全開放,任何市面上付費的一些課程,都請大家謹慎選擇。

    可以確定的是:未來 10-20年,一定是 AI 的大風口、大時代,如果錯過了公眾號、錯過了抖音、錯過了小紅書。

    請一定不要錯過 AI +。

    面對浪潮,恐懼只會讓我們佇立在原地,被巨浪吞噬。

    要去主動適應它,不被恐懼束縛,動起胳膊動起腳,才不會被淘汰。

    註意是下面【 Python都知道 】公眾號,不是本公眾號,點選下方的公眾號卡片,然後回復 【 sora ,即可獲取最新 Sora 的最全資料。