亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python讀取Excel批量寫入到PPT并生成詞卡

 更新時間:2024年12月20日 09:11:16   作者:PythonFun  
這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)讀取Excel并批量寫入到PPT生成詞卡,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下

一、問題的提出

有網(wǎng)友想把Excel表中的三列數(shù)據(jù),分別是:單詞、音標(biāo)和釋義分別寫入到PPT當(dāng)中,每一張PPT寫一個單詞的內(nèi)容。這種批量操作是python的強項,尤其是在辦公領(lǐng)域,它能較好地解放雙手,讀取Excel表后,批量寫入到PPT的模板中。

詞卡

二、分析問題

生成詞卡過程中要用到讀取Excel的openpyxl模塊,以及寫入PPT用到的python-pptx模塊。先讀取單詞表,然后把每一行數(shù)據(jù)存到一個data列表當(dāng)中,然后利用pptx模塊構(gòu)建對象,獲取ppt模板中的第一張幻燈片,以及其母板中的第一個版本。接著遍歷data列表,通過添加slide,寫入三個占位符中單詞、音標(biāo)和釋義等三列數(shù)據(jù),最后再保存為單詞卡pptx文件。

在編寫代碼前要先在cmd下安裝這兩個模塊,代碼是:

pip install openpyxl, python-pptx

三、解決問題

1. 準(zhǔn)備PPT母版

根據(jù)以上分析,我們先把PPT模板準(zhǔn)備好,在其中的母板上,找到第一個版式,自上而下插入三個占位符,此時還可以設(shè)置動畫、顏色、字體等格式信息,然后保存。

母版樣式

2. 準(zhǔn)備單詞表

準(zhǔn)備好一張Excel表,放入我們準(zhǔn)備好的單詞表,命名為單詞表.xlsx,此表可以有表頭,也可以沒有表頭,為讀取和寫入數(shù)據(jù)做準(zhǔn)備

Excel數(shù)據(jù)

3. 寫入代碼

根據(jù)以上分析,我們編寫出以下代碼:

# 導(dǎo)入必要庫
import os
from pptx import Presentation
from openpyxl import load_workbook
 
# 讀取 Excel 數(shù)據(jù)
try:
    wb = load_workbook(r"單詞表.xlsx")
    sheet = wb.active  # 默認(rèn)讀取第一個工作表
except FileNotFoundError:
    raise FileNotFoundError("文件 '單詞表1.xlsx' 未找到。")
 
# 檢查是否有數(shù)據(jù)
if sheet.max_row < 1:
    raise ValueError("Excel 文件中沒有有效的數(shù)據(jù)行。")
 
# 將數(shù)據(jù)按行存儲為列表
data = []
for row in sheet.iter_rows(min_row=1, values_only=True):  # 從第1行開始讀取數(shù)據(jù)
    data.append(row)
 
print(data)
 
# 讀取母版文件構(gòu)建 PPT 的對象
try:
    my_ppt = Presentation(r"單詞模板.pptx")
except FileNotFoundError:
    raise FileNotFoundError("文件 '單詞模板.pptx' 未找到。")
 
# 模板中的第一張幻燈片
sld = my_ppt.slides[0]
 
if sld.shapes[0].has_text_frame:
    tf = sld.shapes[0].text_frame
    tf.text = "詞卡內(nèi)容"
 
# 獲取母版所有幻燈片布局
layout = my_ppt.slide_layouts
 
# 遍歷所有數(shù)據(jù)
for row in data:
    # 創(chuàng)建新幻燈片
    slide = my_ppt.slides.add_slide(layout[0])
    # 當(dāng)前幻燈片中的占位符
    placeholders = slide.shapes.placeholders
    for i, pl in enumerate(placeholders,1):
        if i < len(row):  # 確保占位符對應(yīng)的數(shù)據(jù)存在
            pl.text = str(row[i]) if row[i] is not None else ""
        else:
            pl.text = ""  # 如果數(shù)據(jù)不足,設(shè)置為空字符串
 
# 保存最終生成的 PPT
my_ppt.save("單詞卡.pptx")

四、注意事項

1. 注意路徑為當(dāng)前路徑,生成文件時,一定要保持模板、Excel表都處在關(guān)閉的狀態(tài)當(dāng)中。

2. 注意模板中第一個版式要插入三個占位符,而不是文本框。

到此這篇關(guān)于Python讀取Excel批量寫入到PPT并生成詞卡的文章就介紹到這了,更多相關(guān)Python讀取Excel寫入PPT內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在python中使用[[v]*n]*n遇到的坑及解決

    在python中使用[[v]*n]*n遇到的坑及解決

    這篇文章主要介紹了在python中使用[[v]*n]*n遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 詳解有關(guān)PyCharm安裝庫失敗的問題的解決方法

    詳解有關(guān)PyCharm安裝庫失敗的問題的解決方法

    這篇文章主要介紹了詳解有關(guān)PyCharm安裝庫失敗的問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python自動化測試selenium核心技術(shù)處理彈框

    python自動化測試selenium核心技術(shù)處理彈框

    這篇文章主要為大家介紹了python自動化測試selenium核心技術(shù)處理彈框的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • python serial串口通信示例詳解

    python serial串口通信示例詳解

    Python的serial庫是一個用于串口通信的強大工具,它提供了一個簡單而靈活的接口,可以方便地與串口設(shè)備進行通信,包括與驅(qū)動電機進行通信,這篇文章主要介紹了python serial串口通信,需要的朋友可以參考下
    2023-12-12
  • Numpy之reshape()使用詳解

    Numpy之reshape()使用詳解

    今天小編就為大家分享一篇Numpy之reshape()使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python實現(xiàn)音頻去廣告和字幕提取

    Python實現(xiàn)音頻去廣告和字幕提取

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)音頻去廣告和字幕提取功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • python基礎(chǔ)之Numpy庫中array用法總結(jié)

    python基礎(chǔ)之Numpy庫中array用法總結(jié)

    NumPy(Numerical Python的縮寫)是一個開源的Python科學(xué)計算庫,使用NumPy就可以很自然地使用數(shù)組和矩陣,這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)之Numpy庫中array用法的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 簡單了解Python3 bytes和str類型的區(qū)別和聯(lián)系

    簡單了解Python3 bytes和str類型的區(qū)別和聯(lián)系

    這篇文章主要介紹了簡單了解Python3 bytes和str類型的區(qū)別和聯(lián)系,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python語言技巧之三元運算符使用介紹

    Python語言技巧之三元運算符使用介紹

    現(xiàn)在大部分高級語言都支持“?”這個三元運算符(ternary operator),它對應(yīng)的表達(dá)式如下:condition ? value if true : value if false。很奇怪的是,這么常用的運算符python居然不支持
    2013-03-03
  • pygame實現(xiàn)井字棋之第一步繪制九宮格

    pygame實現(xiàn)井字棋之第一步繪制九宮格

    這篇文章主要介紹了pygame實現(xiàn)井字棋之第一步繪制九宮格,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05

最新評論