跳至页脚内容
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# 项目。
  2. 在新实例中启动 PowerPoint 程序。
  3. 将模板中的幻灯片插入到新创建的演示文稿中。
  4. 创建一个新文件并保存演示文稿。
  5. 关闭 PowerPoint 程序并结束演示。

通过模板理解 PowerPoint

在深入代码之前,我们先来回顾一下以编程方式编写 PowerPoint 演示文稿的基本概念。 借助微软的 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,并单击"创建"。

如何在 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 是一个 Excel 库,可帮助处理 Excel 文件而无需安装 Excel。

隆重推出功能丰富的 C# 库IronXL ,用于处理 Excel 文件。 Iron Software 的IronXL提供了一系列工具,用于动态创建、填充和格式化 Excel 文档。 IronXL拥有用户友好的 API 和丰富的文档,简化了 C# 中的 Excel 交互,并为开发人员提供了与 Excel 相关的任务的无缝体验。

了解更多关于 IronXL 是一个 Excel 库,可帮助处理 Excel 文件而无需安装 Excel。的特点

*广泛的 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的信息。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。