news 2026/7/2 7:06:15

使用C#代码根据Excel 数据创建 PowerPoint 图表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用C#代码根据Excel 数据创建 PowerPoint 图表

创建图表是提升 PowerPoint 演示文稿表现力的有效方式,它能够将复杂的数据以直观的形式呈现,帮助观众快速理解关键信息。通过读取 Excel 数据生成图表,可以减少手动录入数据的工作量,并提高数据的准确性。如果希望在 PowerPoint 中直接使用 Excel 文件里的图表,也可以将图表以图片形式插入到幻灯片中,从而完整保留原有的样式和格式。

本文将介绍如何在 C# 中读取 Excel 数据,在 PowerPoint 幻灯片中创建图表,以及如何将 Excel 图表以图片形式插入到 PowerPoint 中。

安装依赖

开始之前,需要在 .NET 项目中添加所需的程序集引用。你可以下载对应的 DLL 文件并手动引用,也可以通过 NuGet 安装相关组件。

PM> Install-Package Spire.Office

使用 C# 根据 Excel 数据创建 PowerPoint 图表

在 .NET 中,可以先读取 Excel 工作表中的数据,再将这些数据作为数据源,在 PowerPoint 幻灯片中生成图表。具体步骤如下:

  1. 创建Presentation对象。

  2. 创建Workbook对象,并使用Workbook.LoadFromFile()方法加载 Excel 文件。

  3. 获取演示文稿中的第一张幻灯片,并使用ISlide.Shapes.AppendChart()方法添加图表。

  4. 使用IChart.ChartData.Clear()方法清除图表中的默认示例数据。

  5. 获取 Excel 工作簿中的第一个工作表。

  6. 遍历工作表中的行和列:

    • 读取单元格数据。

    • 将读取的数据写入图表数据源。

  7. 设置图表标题。

  8. 设置图表系列标签和分类标签。

  9. 设置各数据系列的值。

  10. 设置分类轴和值轴的数字格式。

  11. 设置图表样式。

  12. 保存 PowerPoint 演示文稿。

完整示例代码如下:

using Spire.Presentation; using Spire.Presentation.Charts; using Spire.Xls; using System.Drawing; using FileFormat = Spire.Presentation.FileFormat; using IChart = Spire.Presentation.Charts.IChart; namespace PresentationChartExcelData { class Program { public static void Main(string[] args) { // 创建 Presentation 类的实例 Presentation presentation = new Presentation(); // 设置幻灯片大小 presentation.SlideSize.Type = SlideSizeType.Screen16x9; // 创建 Workbook 类的实例并加载 Excel 文件 Workbook workbook = new Workbook(); workbook.LoadFromFile("Sample.xlsx"); // 获取工作簿中的第一个工作表 Worksheet sheet = workbook.Worksheets[0]; // 在演示文稿中创建图表 RectangleF rect = new RectangleF( 50, 100, presentation.SlideSize.Size.Width - 100, presentation.SlideSize.Size.Height - 150); ISlide slide = presentation.Slides[0]; IChart chart = slide.Shapes.AppendChart(ChartType.ColumnClustered, rect); // 清除图表中的默认示例数据 chart.ChartData.Clear(0, 0, 5, 5); // 遍历工作表中的所有行 for (int i = 0; i < sheet.AllocatedRange.RowCount; i++) { // 遍历工作表中的所有列 for (int j = 0; j < sheet.AllocatedRange.ColumnCount; j++) { // 将 Excel 单元格数据写入图表数据 chart.ChartData[i, j].Value = sheet.AllocatedRange[i + 1, j + 1].Value2; // 同时复制数字格式 chart.ChartData[i, j].NumberFormat = sheet.AllocatedRange[i + 1, j + 1].NumberFormat; } } // 设置图表标题 chart.ChartTitle.TextProperties.Text = sheet.Name; chart.ChartTitle.TextProperties.IsCentered = true; chart.ChartTitle.Height = 25; chart.HasTitle = true; // 设置系列标签和分类标签 chart.Series.SeriesLabel = chart.ChartData["B1", "C1"]; chart.Categories.CategoryLabels = chart.ChartData["A2", "A" + sheet.AllocatedRange.RowCount]; // 设置系列数据 chart.Series[0].Values = chart.ChartData["B2", "B" + sheet.AllocatedRange.RowCount]; chart.Series[1].Values = chart.ChartData["C2", "C" + sheet.AllocatedRange.RowCount]; // 设置坐标轴数字格式 chart.PrimaryCategoryAxis.NumberFormat = sheet.AllocatedRange["A2"].NumberFormat; chart.PrimaryValueAxis.NumberFormat = sheet.AllocatedRange["B2"].NumberFormat; // 设置图表样式 chart.ChartStyle = ChartStyle.Style2; // 设置系列重叠和间隙宽度 chart.OverLap = 50; chart.GapWidth = 200; // 保存演示文稿 presentation.SaveToFile("output/PresentationChartExcelData.pptx", FileFormat.Pptx2019); // 释放资源 presentation.Dispose(); workbook.Dispose(); } } }

使用 C# 将 Excel 图表作为图片插入 PowerPoint

如果希望将 Excel 工作表中的现有图表插入到 PowerPoint 幻灯片中,并完整保留其原有的样式和格式,可以先将图表导出为图片,再将图片插入到幻灯片中。

具体步骤如下:

  1. 创建Presentation对象。

  2. 创建Workbook对象,并使用Workbook.LoadFromFile()方法加载 Excel 文件。

  3. 使用Workbook.SaveChartAsImage()方法将工作表中的图表保存为图片。

  4. 使用Presentation.Images.Append()方法将图片添加到演示文稿资源中。

  5. 使用Presentation.Slides[].AppendEmbedImage()方法将图片插入到指定幻灯片。

  6. 使用Presentation.SaveToFile()方法保存 PowerPoint 演示文稿。

完整示例代码如下:

using Spire.Presentation; using Spire.Presentation.Drawing; using Spire.Xls; using System.Drawing; using FileFormat = Spire.Presentation.FileFormat; namespace PresentationChartExcelChart { class Program { public static void Main(string[] args) { // 创建 Presentation 类的实例 Presentation presentation = new Presentation(); // 设置幻灯片大小 presentation.SlideSize.Type = SlideSizeType.Screen16x9; // 创建 Workbook 类的实例并加载 Excel 文件 Workbook workbook = new Workbook(); workbook.LoadFromFile("Sample.xlsx"); // 将第一个工作表中的第一个图表保存为图片 Image image = workbook.SaveChartAsImage(workbook.Worksheets[0], 0); // 将图片添加到演示文稿资源中 IImageData imageData = presentation.Images.Append(image); // 将图片插入到第一张幻灯片 RectangleF rect = new RectangleF( 50, 120, presentation.SlideSize.Size.Width - 100, presentation.SlideSize.Size.Height - 170); presentation.Slides[0].Shapes.AppendEmbedImage( ShapeType.Rectangle, imageData, rect); // 保存演示文稿 presentation.SaveToFile( "output/PresentationChartExcelChart.pptx", FileFormat.Pptx2019); // 释放资源 presentation.Dispose(); workbook.Dispose(); } } }

总结

本文介绍了如何在 C# 中利用 Excel 数据生成 PowerPoint 图表,以及如何将 Excel 图表作为图片插入 PowerPoint 演示文稿。第一种方法通过读取工作表数据动态创建图表,适用于需要根据最新数据自动生成演示文稿的场景;第二种方法则将 Excel 中已有的图表导出为图片并插入幻灯片,能够完整保留图表的样式和格式,适合直接复用现有图表。开发者可根据实际需求选择合适的方式,实现 Excel 数据与 PowerPoint 演示文稿之间的高效集成。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 7:06:06

计算机毕业设计之基于微信小程序的个人健康档案管理系统设计与实现

随着生活节奏加快和工作压力增大&#xff0c;人们越来越意识到健康管理的重要性&#xff0c;但传统健康管理方式存在诸多不便&#xff0c;如记录零散、缺乏系统分析等。微信小程序作为一种轻量级应用&#xff0c;具有用户群体广泛、界面友好、易用性强等特点&#xff0c;能够为…

作者头像 李华
网站建设 2026/7/2 7:06:05

和之风云胶片上线,赋能智慧就医

为全面升级医院影像诊疗服务、优化患者就医体验&#xff0c;落实智慧医院数字化建设要求&#xff0c;我院正式启用和之风云胶片&#xff08;智慧数字影像系统&#xff09;。依托专业成熟的数字化影像技术&#xff0c;彻底颠覆传统纸质胶片、塑料胶片的服务模式&#xff0c;兼顾…

作者头像 李华
网站建设 2026/7/2 7:06:14

Databuff vs SkyWalking:国产开源APM深度对比与选型指南(2026)

面向技术负责人与架构师——在 Apache 顶级可观测平台与 AI Native OTel APM 之间&#xff0c;用多维客观对比与场景化选型建议&#xff0c;做出适合团队的开源 APM选型。1 两款产品定位&#xff1a;成熟生态 vs AI 原生 同为国产/华人社区主导的开源 APM&#xff0c;但设计哲学…

作者头像 李华
网站建设 2026/6/29 1:21:27

2026 完整的佛山高端宋式美学实操流程|新手落地规范详解

在实地走访多地同类型项目&#xff0c;深度实操调研佛山高端宋式美学全流程后发现&#xff0c;许多从业者及业主在落地宋式空间时&#xff0c;常因材质甄别不清、流程缺失、工艺标准不统一等问题&#xff0c;导致最终效果偏离预期。本次教程由行业第三方实操评测团队联合本地从…

作者头像 李华
网站建设 2026/7/1 0:18:51

亲测芮洣舒小白膏,对湿疹缓解效果怎么样?

亲身体验告诉你&#xff0c;芮洣舒小白膏对缓解宝宝湿疹干痒&#xff0c;效果确实不错。我家宝宝之前一到换季&#xff0c;脸上、胳膊上就容易起小红点&#xff0c;又干又痒&#xff0c;孩子总忍不住去抓。试过不少保湿霜&#xff0c;要么涂完没多久皮肤又干了需要反复补涂&…

作者头像 李华
网站建设 2026/6/29 0:34:38

专利查新检索报告办理机构与流程介绍

我朋友最近急得火烧眉毛…… 说项目要结题了&#xff0c;可那份查新报告还不知道找谁办…… 我跟你说这事儿我熟啊&#xff5e;&#xff5e; 今天这篇文章我就把专利查新检索报告办理机构与流程介绍清楚&#xff0c; 大家看完肯定就都明白啦&#xff01; 1.专利查新检索报告…

作者头像 李华