iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

規劃開發流程

母片

  • 相信不論是在哪個產業,大多都會在到職的那一天領取電腦,並得到代代相傳的投影片母片報告格式公版⋯⋯
  • 敝司當然也有 「公版」,先複製一份,打開來看看
    https://ithelp.ithome.com.tw/upload/images/20230904/20141784ZEoLi4eBCz.png
  • 用 PowerPoint 中打開後,左上角 「插入」 ,選取 「新增投影片右邊的下拉式選單」
  • 有九種不同的版型⋯⋯雖然裡面有一個「比較」看起來就是「空白」

    平常都不是從無到有的刻投影片,而是直接開起來修改,所以我到現在才知道,平常拿來當作封面標題的,居然是「章節標題」

  • 接著動手

尋找開發手法與參考資料

  • 身為一個不專業的開發者,不會直接去看官方手冊
  • 看了 Getting Started 範例程式碼 直接先玩,都是從無到有開始加料,沒有母片的玩法
  • 接下來翻翻看鐵人賽文章
  • 找不到想要的答案,再去看官方手冊
    • SlidePlaceholders 是 dictionary-style lookup,但看起來他的 key 不是照順序編的
      https://ithelp.ithome.com.tw/upload/images/20230904/20141784MDw0tZkmRi.png
    • 有點傷腦筋
  • 官方文件
    • placeholders 的說明是 Instance of SlidePlaceholders containing sequence of placeholder shapes in this slide.
    • 再看看 shapes 的說明是 Instance of SlideShapes containing sequence of shape objects appearing on this slide.
    • 判斷可以直接對 Shape 進行操作,不過這要先確認該 Shape 是有支援放入文字的喔

寫一支程式來標記位置

  • 用巢狀迴圈爬所有的母片中,所有的 Shape,抓出 text 後依序放上數字
    from pptx import Presentation
    
    # 讀進樣板
    f = open('材料組進度報告 - 樣板.pptx', 'rb')
    prs = Presentation(f)
    f.close()
    
    for template in prs.slide_layouts:
        # Insert this slide layout into the presentation
        slide = prs.slides.add_slide(template)
        # Find out shapes in this slide
        shape_count = 0
        for shape in slide.shapes:
            # Find out text in this shape
            if shape.has_text_frame:
                # Find out text in this text frame
                shape.text = str(shape_count)
            shape_count += 1
    
    prs.save('樣板標記.pptx')
    

本日成果

  • 順利將 Shape 的索引標記出來了,沒意外的話,明天就能按照這個順序把固定的資料放進去了
    https://ithelp.ithome.com.tw/upload/images/20230904/20141784LUcQsDnN0f.png
  • 看別人做都很簡單,自己做都踩到雷

上一篇
Day 2 - 環境設定與投影片套件
下一篇
Day 4 - 動手改寫程式
系列文
挽救肝指數 x 職場生存術 x 老闆愛看的投影片製造機30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言