跳過到頁腳內容
EXCEL 工具

如何使用 C# 從模板創建 PowerPoint

PowerPoint簡報仍然是商業、教育和其他領域高效傳遞訊息的標準方式。 PowerPoint 是一款靈活的工具,無論您是授課、向團隊報告專案進展,或是向潛在投資者進行簡報,它都能幫助您提升溝通效果。 然而,從零開始建立簡報可能需要花費大量時間,而且設計的效率和統一性可能並不總是符合預期。 這時,PowerPoint模板就派上用場了,它提供了現成的幻燈片,包含各種主題和佈局,可以根據您的需求進行修改。

在這篇文章中,我們將探討如何使用 C# 從範本建立 PowerPoint。 我們可以利用 Microsoft[PowerPoint Interop 庫](https://learn.microsoft.com/en-us/previous-versions/office/office-12/ff764034(v=office.12)來加速流程,並使客戶能夠輕鬆建立精美的簡報)。

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

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

  1. 在新實例中啟動 PowerPoint 程式。
  2. 將範本中的投影片插入新建立的簡報中。
  3. 建立一個新文件並儲存簡報。
  4. 關閉 PowerPoint 程式並結束簡報。

透過模板理解 PowerPoint

在深入程式碼之前,我們先來回顧一下以程式設計方式撰寫 PowerPoint 簡報的基本概念。 透過微軟的 PowerPoint Interop 程式庫,開發人員可以使用 C# 等 .NET 語言與 PowerPoint 應用程式進行通訊。 該軟體包提供了許多功能,包括創建幻燈片、添加文字、插入圖片和應用程式格式等。

建立新的 Visual Studio 專案

若要建立新的Visual Studio項目,請依照下列說明操作。

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

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

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

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

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

決定項目文件的儲存位置。 若要開始處理新的控制台應用程式項目,請按一下"下一步"。 然後選擇合適的 .NET Framework,並按一下"建立"。

如何在 C# 中使用範本建立 PowerPoint:圖 3 - 選擇適當的 .NET Framework 並按一下"建立"。

在新建的 C# 專案中,新增對 Microsoft PowerPoint Interop 庫的參考。 借助此庫,現在可以更輕鬆地開發簡報並與簡報進行交互,該庫實現了 C# 程式碼與 PowerPoint 應用程式之間的通訊。

使用 C# 從範本建立 PowerPoint

載入構成我們新簡報基礎的 PowerPoint 範本是第一步。範本中通常會預先定義投影片佈局、主題和內容佔位符。 Microsoft.Office.PowerPoint.Interop 庫的功能可讓我們開啟範本檔案並從我們的 C# 原始碼中檢索其內容。

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core; // Make sure to include this for MsoTriState

class Program
{
    static void Main(string[] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();

        // Open an existing PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx", 
            MsoTriState.msoFalse, 
            MsoTriState.msoFalse, 
            MsoTriState.msoTrue);

        // Insert slides from a template file into the presentation
        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;
using Microsoft.Office.Core; // Make sure to include this for MsoTriState

class Program
{
    static void Main(string[] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();

        // Open an existing PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx", 
            MsoTriState.msoFalse, 
            MsoTriState.msoFalse, 
            MsoTriState.msoTrue);

        // Insert slides from a template file into the presentation
        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
Imports Microsoft.Office.Core ' Make sure to include this for MsoTriState

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize PowerPoint application
		Dim powerpointApp As New PowerPoint.Application()

		' Open an existing PowerPoint file
		Dim presentation As PowerPoint.Presentation = powerpointApp.Presentations.Open("C:\Path\To\Existing\output.pptx", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue)

		' Insert slides from a template file into the presentation
		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
$vbLabelText   $csharpLabel

載入模板後,我們使用其佈局來建立一個新的簡報。 我們使用 PowerPoint 簡報文件( output.pptx ),它可以幫助我們建立一個 PowerPoint簡報對象,作為我們材料的畫布。 範本的佈局和主題將沿用到本次簡報中,使其具有統一的視覺風格。

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

presentation.Slides.InsertFromFile()方法接受四個參數: FileNameIndexSlideStartSlideEnd

  • 包含您希望包含在簡報中的投影片的 PowerPoint 檔案的路徑指定為第一個參數( demo.pptx )。 下一個參數是您希望將投影片插入目標簡報中的位置。
  • 其他兩個參數是可選的。 這些參數允許我們指定投影片的起始索引和結束索引。 如果我們需要提取特定範圍內的幻燈片,可以使用這些參數。

使用InsertFromFile()方法插入投影片後,可以使用presentation.Save()方法儲存簡報。 儲存後,使用Close()方法關閉 PowerPoint 程序,然後使用Quit()方法退出簡報。 這樣,您可以透過動態新增外部文件中的投影片來改善 PowerPoint 簡報的內容和靈活性。

輸出

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

IronXL。

隆重介紹功能豐富的 C# 庫IronXL ,用於處理 Excel 檔案。 Iron Software 的IronXL提供了一系列工具,用於動態建立、填充和格式化 Excel 文件。 IronXL擁有用戶友好的 API 和豐富的文檔,簡化了 C# 中的 Excel 交互,並為開發人員提供了與 Excel 相關的任務的無縫體驗。

IronXL。的特點

*廣泛的 Excel 支援*:IronXL 能夠開啟和處理各種 Excel 格式的大量 Excel 文件,例如 CSV、XLS 和 XLSX 文件格式。 借助 IronXL 強大的解析功能,開發人員可以有效地從現有的 Excel 文件中提取數據,無論是舊的 Excel 文件還是新的 Excel 文件。 高速**:IronXL 優先考慮效能最佳化。 由於採用了高效的演算法和記憶體管理策略,Excel 的互動既可靠又快速。 IronXL 可降低記憶體開銷並優化處理速度,因此開發人員可以輕鬆管理大型 Excel 檔案。 *簡單易用的 API :IronXL 的 API 簡單易用,適合各種技能等級的開發人員。 IronXL 降低了 C# 開發人員的學習曲線,並透過提供讀取 Excel 檔案、存取 Excel 工作簿和從儲存格取得資料的簡單方法,加快了建立和讀取現有檔案的過程。

如需了解更多關於 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", "Gotham City" },
            { "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", "Gotham City" },
            { "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", "Gotham City" },
			{ "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
$vbLabelText   $csharpLabel

在這個程式碼範例中,我們首先使用 IronXL 的 Create() 函數來建立一個新的 WorkBook 對象,並指定必要的 Excel 檔案格式。 下一步是在工作簿中建立一個新的工作表,並在二維數組中定義一些範例資料。 接下來,為了將範例資料填入電子表格中,我們利用巢狀循環來存取和設定不同儲存格的值。 為了釋放系統資源,我們在使用 SaveAs() 方法將工作簿儲存到名為"Demo.xlsx"的檔案後,關閉了該工作簿。 同樣,我們也可以為目標檔案產生多個工作表。

下面顯示的是產生的Excel輸出檔。 要了解有關編寫 Excel 文件的更多信息,請參閱程式碼範例頁面

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

結論

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

對於 C# 開發人員來說, IronXL是 Microsoft Excel 的強大替代品,它提供對 Excel 的全面支援、出色的效能以及與 .NET 框架的無縫互動。 IronXL 的使用者友善 API 和對 Excel 文件的精細控制簡化了 C# 中的 Excel 編寫。 這有助於開發人員自動執行與 Excel 相關的任務、匯出資料和產生動態報告。 無論他們是為桌面、Web 還是行動應用程式建立 Excel 文件,C# 開發人員都可以依靠 IronXL 來簡化與 Excel 相關的任務,並在他們的 C# 程式中釋放 Excel 的全部潛力。

IronXL 在首次發佈時需要$799費用。 此外,用戶還可以選擇支付一年的會員費,以獲得產品支援和更新。 IronXL 提供付費保護,防止不受限制的再分配。 如需了解大致費用,請造訪此許可證頁面。 點擊此網站鏈接,了解更多關於Iron Software的資訊。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。