EXCEL 工具

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

雷根·彭
雷根·彭
2024年三月26日
分享:

介绍

PowerPoint 演示文稿仍然是商业、教育和其他领域有效传达信息的标准。 PowerPoint 是一种灵活的工具,无论您是在课堂上授课、向团队提供项目更新信息,还是向可能的投资者进行演示,它都可以改善您的沟通工作。 然而,从头开始制作演示文稿可能会耗费大量时间,而且设计的效率和统一性可能并不总是符合要求。 这时,PowerPoint 模板就派上用场了,它提供了带有主题和布局的现成幻灯片,可以根据您的要求进行修改。

在本篇文章中,我们将了解如何使用 C# 从模板创建 PowerPoint。 我们可以通过利用Microsoft PowerPoint Interop库,加快流程并使客户轻松创建精美的演示文稿。

如何在 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#)。 接下来,从可用的项目模板列表中,选择“Console App”或“Console App (.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;
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
$vbLabelText   $csharpLabel

加载模板后,我们使用其布局创建一个新的演示文稿。 我们使用 PowerPoint 演示文稿文件(output.pptx)。 这帮助我们创建一个演示文稿对象,该对象将充当我们材料的画布。 该演示文稿将沿用模板的布局和主题,使其具有统一的视觉风格。

如何在C#中使用模板创建PowerPoint:图4 - 第二个PowerPoint文件(demo.pptx),包含您希望在演示文稿中包含的幻灯片

presentation.Slides.InsertFromFile() 方法需要四个参数,即 FileNameIndexSlideStartSlideEnd

要在演示文稿中包含幻灯片的PowerPoint文件路径被指定为第一个参数(demo.pptx)。 下一个参数是用户需要从模板复制到新文件的幻灯片数量。 其他两个参数为可选参数。 这些参数允许我们传递幻灯片的开始和结束索引。 如果我们需要提取两张幻灯片之间的幻灯片,我们可以使用这些参数。

您可以使用 presentation.Save() 方法在通过 InsertFromFile() 方法插入幻灯片后保存演示文稿,使用 Close() 方法关闭 PowerPoint 程序,然后使用 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 文件中提取数据,同时利用旧版和现代 Excel 文件。
  • 高速:IronXL 优先考虑性能优化。 由于使用了高效的算法和内存管理策略,Excel 的交互既可靠又快速。 IronXL.Excel 降低了内存开销,优化了处理速度,因此开发人员可以轻松管理庞大的 Excel 文件。
  • 简单且用户友好的API:IronXL的用户友好API使其适合各个技能水平的开发人员。 IronXL.Excel 通过提供读取 Excel 文件、访问 Excel 工作簿和从单元格中获取数据的简单方法,降低了 C# 开发人员的学习曲线,加快了创建和读取现有文件的过程。

    要了解有关IronXL文档的更多信息,请参考此处

安装 IronXL

要安装 IronXL,请使用以下步骤中给出的说明和命令:

在 Visual Studio 中,导航至工具 -> NuGet 包管理器 -> 包管理器界面。

在软件包管理器的控制台选项卡中输入以下代码:

Install-Package IronXL.Excel

IronXL 软件包下载并安装到当前项目后即可使用。

使用 IronXL.Excel 创建 Excel

现在让我们检查一个实际代码示例,该示例演示了如何使用 IronXL.Excel 在 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
$vbLabelText   $csharpLabel

在此代码示例中,我们首先使用IronXL的Create()函数创建一个新的WorkBook对象,指定必要的Excel文件格式。 下一步是在工作簿中新建一个工作表,并解释二维数组中的一些示例数据。 接下来,为了用样本数据填充电子表格,我们利用嵌套循环来访问和设置不同单元格的值。 为了释放系统资源,我们在使用 SaveAs() 方法将工作簿保存为名为“SampleData.xlsx”的文件后关闭该工作簿。 同样,我们也能为目标文件生成多张译文。

作为输出创建的 Excel 文件如下所示。 要了解有关编写 Excel 文件的更多信息,请参阅代码示例页面

如何在C#中使用从模板创建PowerPoint:图6 - Excel文件输出

结论

总之,利用 C# 从模板创建 PowerPoint 演示文稿可以让用户提高设计一致性、加快工作流程并制作出具有效果的内容。 开发人员可以通过自动创建流程和利用 Microsoft PowerPoint Interop 库的功能来节省时间和工作,同时保证专业成果。 学习这种方法将帮助作为演讲者、商业专业人士或教育工作者的您提高演讲技巧,并通过吸引眼球的幻灯片抓住听众。

对于 C# 开发者来说,IronXL 是微软 Excel 的强大替代品,提供完整的 Excel 支持、出色的性能,并与 .NET 框架无缝交互。 IronXL.Excel 的用户友好 API 和对 Excel 文档的细粒度控制简化了 Excel 的 C# 写作。 这有助于开发人员自动执行 Excel 相关任务、导出数据和生成动态报告。 无论是为桌面、网络还是移动应用程序创建 Excel 文件,C# 开发人员都可以依靠 IronXL.Excel 来简化 Excel 相关任务,并在他们的 C# 程序中充分释放 Excel 的潜力。

IronXL 首次推出时需要 $749。 此外,用户还可以选择支付一年的会员费,以获得产品帮助和更新。 IronXL 可提供有偿保护,防止无限制的再分发。 要了解更多关于大致费用的信息,请访问此许可证页面。 通过点击此网站链接,查看更多关于Iron Software的信息。

雷根·彭
软件工程师
Regan毕业于雷丁大学,拥有电子工程学士学位。在加入Iron Software之前,他的前工作职位要求他专注于单一任务;他在Iron Software最喜欢的是能进行多种工作,无论是增加销售价值、技术支持、产品开发还是营销。他喜欢了解开发人员如何使用Iron Software的库,并利用这些知识不断改进文档和开发产品。
< 前一页
如何在 C# 中查看 PowerPoint 文件
下一步 >
使用 .NET Regex Tester 测试您的 Regex 模式