EXCEL 工具

如何在 C# 中使用模板創建 PowerPoint

發佈 2024年3月26日
分享:

介紹

PowerPoint 簡報繼續是商業、教育及其他領域中有效傳達資訊的標準工具。 PowerPoint 是一個靈活的工具,無論是教課、向您的團隊提供項目更新,還是向潛在投資者做報告,都可以提升您的溝通效果。 然而,從頭開始製作簡報可能會花費大量時間,且設計的效率和一致性可能不總是符合期望。 這就是 PowerPoint 模板派上用場的地方,提供預製的主題和佈局幻燈片,可以根據您的需求進行更改。

在本文中,我們將探討如何使用 C# 來從範本創建 PowerPoint。 我們可以透過使用 Microsoft 來加速流程,輕鬆地幫助客戶創建精美的簡報。PowerPoint互操作庫.

如何在 C# 中使用範本建立 PowerPoint 文件

  1. 創建一個新的 C# 專案。

  2. 在新實例中啟動 PowerPoint 程式。

  3. 從範本插入投影片至新創建的簡報中。

  4. 創建一個新文件並保存演示文稿。

  5. 關閉 PowerPoint 程式並結束簡報。

從範本了解 PowerPoint

在進入代碼之前,我們先來回顧一下通過程式設計撰寫 PowerPoint 演示文稿的基本概念。 使用 Microsoft 的 PowerPoint Interop 庫,開發人員可以使用像 C# 這樣的 .NET 語言與 PowerPoint 應用程式進行通信。 此套件提供多項功能,包括創建幻燈片、添加文字、插入圖片和套用格式。

建立一個新的 Visual Studio 專案

開始新的Visual Studio專案,請按照以下指示進行。

啟動 Visual Studio 應用程式。 在使用 Visual Studio 之前,請確保您已在電腦上安裝它。

選擇檔案,然後選擇新增,最後選擇專案。

如何使用 C# 從範本建立 PowerPoint:圖 1 - 在 Visual Studio 中建立新專案。 選擇 C# 語言和主控台應用程式或主控台應用程式(.NET Core)專案。

選擇您喜歡的程式語言(例如 C#)從「建立新專案」方框的左側。 接下來,從可用的專案模板列表中,選擇「控制台應用程式」或「控制台應用程式」。(.NET Core)" 範本。 要為您的專案命名,請填寫「名稱」欄位。

如何在C#中使用範本建立 PowerPoint:圖2 - 配置控制台應用程式專案:新增專案名稱和位置。

決定專案將儲存的位置。 若要開始處理一個新的控制台應用程式專案,請點選「下一步」。 然後選擇合適的.NET Framework,然後點擊「Create」。

如何在C#中使用範本創建 PowerPoint:圖3 - 選擇適當的 .NET 框架並點擊「創建」。

在新建立的 C# 專案中,加入對 Microsoft PowerPoint Interop 庫的引用。 由於這個庫的存在,現在開發和使用簡報變得更容易,這個庫使您的C#代碼能夠與PowerPoint應用程式進行通信。

使用 C# 從範本建立 PowerPoint

載入構成我們新演示文稿基礎的 PowerPoint 模板是第一步。模板中經常會看到預定義的投影片版面配置、主題和內容佔位符。 Microsoft.Office.PowerPoint.Interop 函式庫的功能允許我們從 C# 原始碼中開啟模板文件並檢索其內容。

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
class Program
{
    static void Main(string [] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();
        // Load a PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx",
            MsoTriState.msoFalse,
            MsoTriState.msoFalse,
            MsoTriState.msoTrue);
        // ppt slide from a template file
        presentation.Slides.InsertFromFile(
            @"C:\Path\To\External\demo.pptx",
            presentation.Slides.Count + 1,
            1,
            0);
        // Save the updated presentation
        presentation.Save();
        // Close the presentation and quit PowerPoint application
        presentation.Close();
        powerpointApp.Quit();
    }
}
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
class Program
{
    static void Main(string [] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();
        // Load a PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx",
            MsoTriState.msoFalse,
            MsoTriState.msoFalse,
            MsoTriState.msoTrue);
        // ppt slide from a template file
        presentation.Slides.InsertFromFile(
            @"C:\Path\To\External\demo.pptx",
            presentation.Slides.Count + 1,
            1,
            0);
        // Save the updated presentation
        presentation.Save();
        // Close the presentation and quit PowerPoint application
        presentation.Close();
        powerpointApp.Quit();
    }
}
Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize PowerPoint application
		Dim powerpointApp As New PowerPoint.Application()
		' Load a PowerPoint file
		Dim presentation As PowerPoint.Presentation = powerpointApp.Presentations.Open("C:\Path\To\Existing\output.pptx", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue)
		' ppt slide from a template file
		presentation.Slides.InsertFromFile("C:\Path\To\External\demo.pptx", presentation.Slides.Count + 1, 1, 0)
		' Save the updated presentation
		presentation.Save()
		' Close the presentation and quit PowerPoint application
		presentation.Close()
		powerpointApp.Quit()
	End Sub
End Class
VB   C#

載入模板後,我們使用其佈局建立新的簡報。 我們使用 PowerPoint 簡報檔案(output.pptx). 這有助於我們創建一個 PowerPoint 簡報 物件,該物件將作為我們資料的畫布。 範本的佈局和主題將會延續到這個演示中,賦予其統一的視覺風格。

如何在 C# 中使用模板建立 PowerPoint:圖 4 - 第二個 PowerPoint 文件 (demo.pptx),其中包含您希望在簡報中包含的幻燈片

presentation.Slides.InsertFromFile()方法需要四個參數,即FileNameIndexSlideStartSlideEnd

指定要在演示文稿中包含幻燈片的 PowerPoint 檔案路徑作為第一個參數。(demo.pptx). 下一個參數是用戶需要從模板中複製到新文件的幻燈片數量。 其他兩個參數是可選的。 這些參數允許我們傳遞開始和結束的幻燈片索引。 如果我們需要提取夾在兩張幻燈片之間的幻燈片,我們可以使用這些參數。

您可以使用presentation.Save()在使用InsertFromFile插入幻燈片後保存簡報的方法()方法,使用Close關閉PowerPoint程序() method,然後使用Quit退出演示() 方法。 透過利用InsertFromFile技術,以此方式可以透過從外部文件動態添加幻燈片,改善PowerPoint演示文稿的內容和靈活性。

輸出

如何在 C# 中使用範本建立 PowerPoint:圖 5 - 輸出:output.pptx

IronXL

介紹一個功能豐富的 C# 函式庫,用於處理 Excel 文件,名為IronXL. Iron Software 的 IronXL 提供了一系列工具,用於動態創建、填充和格式化 Excel 文件。 憑藉其易於使用的API和廣泛的文檔,IronXL 簡化了C#中的Excel交互,為開發人員提供了流暢的Excel相關任務體驗。

IronXL 的功能

  • 廣泛的 Excel 支援:IronXL 能夠開啟和操作多種 Excel 格式的大量 Excel 文件,如 CSV、XLS 和 XLSX 文件格式。 開發人員可以利用IronXL強大的解析功能,從現有的Excel檔案中有效地提取數據,支援處理舊版和當前版本的Excel檔案。
  • 高速:IronXL 優先考慮性能優化。 由於使用了高效的算法和記憶體管理策略,Excel 互動可靠且快速。 IronXL 提供降低的記憶體開銷和最佳化的處理速度,使開發人員能夠輕鬆管理大型 Excel 文件。
  • 簡單易用的 API:IronXL 的易用 API 使其適合各種技能水平的開發人員。 IronXL 通過提供簡單的方法來讀取 Excel 文件、存取 Excel 工作簿以及從單元格中獲取數據,減少了 C# 開發人員的學習曲線並加快了創建和讀取現有文件的過程。

    如需了解更多 IronXL 的文檔,請參閱這裡.

安裝 IronXL

若要安裝 IronXL,請按照以下步驟中的指示和命令進行操作:

在 Visual Studio 中,導航至工具 -> NuGet 套件管理員 -> 套件管理員介面。

在套件管理器的主控台標籤中輸入以下程式碼:

Install-Package IronXL.Excel

IronXL 套件在下載並安裝到當前項目後即可使用。

使用 IronXL 建立 Excel

現在讓我們來看看一個實際的程式碼範例,該範例展示了如何使用 IronXL 在 C# 中將資料寫入 Excel 文件。 我們將逐步介紹如何啟動一個新的 Excel 活頁簿、完成工作表,然後將信息保存到文件中:

using IronXL;
class Program
{
    static void Main(string [] args)
    {
            // Create a new WorkBook object
            WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
            // Add a new WorkSheet to the workbook
            WorkSheet workSheet = workBook.CreateWorkSheet("Sheet1");
            // Define sample data
            string [,] data = {
            { "Name", "Age", "City" },
            { "Superman ", "35", "Metropolis" },
            { "Batman", "34", "Metropolis" },
            { "Flash", "30", "Central City" }
        };
            // Populate the worksheet with data
            for (int row = 0; row < data.GetLength(0); row++)
            {
                for (int col = 0; col < data.GetLength(1); col++)
                {
                    workSheet.SetCellValue(row, col, data [row, col]);
                }
            }
            // Save the workbook to a  xlsx file
            workBook.SaveAs("Demo.xlsx");
            // Close the workbook
            workBook.Close();
    }
}
using IronXL;
class Program
{
    static void Main(string [] args)
    {
            // Create a new WorkBook object
            WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
            // Add a new WorkSheet to the workbook
            WorkSheet workSheet = workBook.CreateWorkSheet("Sheet1");
            // Define sample data
            string [,] data = {
            { "Name", "Age", "City" },
            { "Superman ", "35", "Metropolis" },
            { "Batman", "34", "Metropolis" },
            { "Flash", "30", "Central City" }
        };
            // Populate the worksheet with data
            for (int row = 0; row < data.GetLength(0); row++)
            {
                for (int col = 0; col < data.GetLength(1); col++)
                {
                    workSheet.SetCellValue(row, col, data [row, col]);
                }
            }
            // Save the workbook to a  xlsx file
            workBook.SaveAs("Demo.xlsx");
            // Close the workbook
            workBook.Close();
    }
}
Imports IronXL
Friend Class Program
	Shared Sub Main(ByVal args() As String)
			' Create a new WorkBook object
			Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
			' Add a new WorkSheet to the workbook
			Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")
			' Define sample data
			Dim data(,) As String = {
				{ "Name", "Age", "City" },
				{ "Superman ", "35", "Metropolis" },
				{ "Batman", "34", "Metropolis" },
				{ "Flash", "30", "Central City" }
			}
			' Populate the worksheet with data
			For row As Integer = 0 To data.GetLength(0) - 1
				For col As Integer = 0 To data.GetLength(1) - 1
					workSheet.SetCellValue(row, col, data (row, col))
				Next col
			Next row
			' Save the workbook to a  xlsx file
			workBook.SaveAs("Demo.xlsx")
			' Close the workbook
			workBook.Close()
	End Sub
End Class
VB   C#

在此程式碼範例中,我們首先使用 IronXL 的 Create 建立一個新的 WorkBook 對象()函數,指定必要的 Excel 文件格式。 接下來的步驟是在工作簿中創建一個新的工作表並在二維數組中介紹一些範例數據。 接下來,為了使用範例數據填充電子表格,我們利用嵌套迴圈來訪問和設置不同儲存格的值。 為了釋放系統資源,我們在使用 SaveAs 後關閉活頁簿。()將方法保存到名為「SampleData.xlsx」的文件中。 同樣地,我們可以為目標檔案生成多個工作表。

所創建的 Excel 檔案輸出如下所示。 要了解更多有關編寫 Excel 文件的資訊,請參閱代碼示例。頁面.

如何在 C# 中使用從範本建立 PowerPoint:圖 6 - Excel 文件輸出

結論

總之,使用 C# 從模板創建 PowerPoint 簡報可使用戶提高手設計的一致性,加快工作流程,並產生具有影響力的內容。 開發人員可以透過自動化創建過程並利用 Microsoft PowerPoint Interop 庫的功能,節省時間和精力,同時確保專業的結果。 學習這種方法將幫助您作為演講者、商業專業人士或教育工作者提高您的演講技巧,並以引人注目的幻燈片吸引您的觀眾。

對於 C# 開發者,IronXL 是 Microsoft Excel 的強大替代方案,提供完整的 Excel 支援、卓越的性能,並可與 .NET framework 無縫互動。 IronXL 的使用者友好 API 和對 Excel 文件的細緻控制,使在 C# 中撰寫 Excel 變得簡單。 這有助於開發人員自動化與 Excel 相關的任務、導出數據和生成動態報告的過程。 無論是在桌面、網頁或移動應用程式中創建 Excel 文件,C# 開發人員都可以依靠 IronXL 簡化 Excel 相關任務,並在其 C# 程式中釋放 Excel 的全部潛力。

IronXL 在首次推出時的價格為 $749。 此外,用戶可以選擇支付一年的會員費,以獲得產品支持和更新。 IronXL 提供防止不受控制的重新分發的保護服務,需另付費用。 若要了解更多關於大致費用的資訊,請造訪此頁面授權頁面. 了解更多關於 Iron Software 的資訊,請點擊此網站連結.

< 上一頁
如何在 C# 中查看 PowerPoint 文件
下一個 >
測試您的正則表達式模式與 .NET Regex Tester

準備開始了嗎? 版本: 2024.11 剛剛發布

免費 NuGet 下載 總下載次數: 1,111,773 查看許可證 >