本文主要介紹如何使用.NET開發 PowerPoint VSTO 外接程序,并實現快速的將當前頁PPT導出為圖片的功能。可以幫助你了解如何使用 VSTO 開發 Office 外接程序,以及如何操作 PowerPoint 的對象模型。
1. 背景
在日常的文章寫作中,我經常使用 PPT 來制作一些文章的封面配圖,然后導出為 PNG 圖片使用。
如果手動操作,則需要選擇“文件”,然后選擇“導出” ,轉到 “更改文件類型”,選擇圖片文件類型,最后點擊“另存為”。操作到這里,還沒有結束,還需要選擇導出的路徑,接下來還會彈出詢問是保存所有幻燈片還是僅當前的。這樣的操作過程無比繁瑣,還非常耗時。
因此,使用 .NET 開發一個 VSTO 工具,實現快速的將當前頁 PPT 導出為圖片的功能,可以大大提高效率,也愉悅我的寫作心情。
2. 開發環境
- Visual Studio 2022
- .NET Framework 4.8
- Microsoft Office 2013 及以上版本
這里的開發環境是基于 Visual Studio 2022,如果你的開發環境不同,可能會有一些差異,但是基本的思路是一樣的,需要注意的是,要在工作負載中勾選“Office/SharePoint 開發”工作負載。
3. 創建 VSTO 項目
首選我們需要在 Visual Studio 中創建一個 VSTO 項目,選擇“新建項目”,然后選擇“PowerPoint VSTO 外接程序”,如下圖所示:
然后點擊“下一步”,輸入項目名稱,點擊“創建”按鈕,即可創建一個 VSTO 項目。
3.1 添加按鈕
在創建的 VSTO 項目中,我們需要添加一個按鈕,用于觸發導出圖片的操作。在“解決方案資源管理器”中,右鍵添加一個新項,選擇“功能區 (可視化設計器)”項,如下圖所示:
添加完成后,雙擊添加的項目,在設計器中,我們可以添加按鈕,用于觸發導出圖片的操作。在設計器中,找到“工具箱”選項卡,然后找到“按鈕”控件,拖動到功能區中,如下圖所示:
需要注意的是,為了讓這個新添加的功能區顯示在開始的選項卡中,我們需要修改 RibbonTab
的屬性,將 ControlId 設置為“TabHome”。
關于按鈕的屬性設置,我們可以設置按鈕的標簽、圖標等,這里我設置了按鈕的標簽為“導出”。對于圖標,我們可以使用內置的圖標,也可以使用自定義的圖標。這里我使用了內置的圖標 ImageMSO
。只需要將 OfficeImageId
屬性設置為自己想要的圖標 ID 即可。
對于 ImageMSO
圖標 ID,可以在 Office 圖標庫 中查找。
3.2 添加事件
在添加按鈕后,我們需要為按鈕添加事件,用于觸發導出圖片的操作。在設計器中,雙擊按鈕,即可為按鈕添加點擊事件。在事件中,我們可以編寫導出圖片的邏輯。
文件保存可以使用 SaveFileDialog
控件,一樣使用拖動的方式添加到設計器中。然后在代碼中,我們可以使用 SaveFileDialog
控件來選擇保存路徑。
private void exportBtn_Click(object sender, RibbonControlEventArgs e)
{var pptApplication = new Microsoft.Office.Interop.PowerPoint.Application();var activeWindow = pptApplication.ActiveWindow;var slide = activeWindow.View.Slide;saveFileDialog.ShowDialog();if (saveFileDialog.FileName != ""){slide.Export(saveFileDialog.FileName, "PNG");}}
3.3 調試和運行
在編寫完成后,我們可以點擊“啟動”按鈕,即可運行 VSTO 項目。運行后,我們可以在 PowerPoint 中看到添加的功能區。
點擊按鈕,即可觸發導出圖片的操作。
4. 最后
通過這篇文章,我們學習了如何使用 .NET 開發 PowerPoint VSTO 外接程序,并實現快速的將當前頁 PPT 導出為圖片的功能。本項目的相關代碼已經上傳到 GitHub,歡迎大家下載學習:https://github.com/sangyuxiaowu/SlideSnapshot?WT.mc_id=DT-MVP-5005195。