在 ppt 中使用图表能够直观地展示复杂的信息,提升了演示文稿的效果,让观众能更轻松地抓住重点。直接读取 excel 数据来生成图表,不仅能简化数据导入步骤,还能保证数据的准确性。此外,若想直接在 powerpoint 幻灯片里使用 excel 里的图表,可以直接将它们以图片形式插入到幻灯片中,完美保留原有的格式和风格。本文将介绍如何借助 spire.office for .net 在 c# 程序中使用 excel 数据轻松创建 powerpoint 图表。
安装 spire.office for .net
首先,您需要添加 spire.office for .net 包中包含的 dll 文件作为 .net 项目中的引用。dll 文件可以从此链接下载或通过 安装。
pm> install-package spire.office
用 excel 文件数据在 powerpoint 幻灯片中创建图表
开发者可以使用 spire.xls for .net 从 excel 工作表中读取数据,然后利用 spire.presentation for .net 将读取的数据作为图表数据源,在 powerpoint 幻灯片中创建图表。以下是详细操作步骤:
- 创建一个 presentation 类的实例。
- 创建一个 workbook 类的实例,并使用 workbook.loadfromfile() 方法加载一个 excel 文件。
- 通过 presentation.slides[] 属性获取演示文稿中的第一张幻灯片,并使用 islide.shapes.appendchart() 方法在该幻灯片中创建一个图表。
- 使用 ichart.chartdata.clear() 方法清除图表的默认的虚拟数据。
- 通过 workbook.worksheets[] 属性获取工作簿中的第一个工作表。
- 遍历工作表中的行,然后是列:
- 使用 worksheet.allocatedrange[].value2 属性获取工作表中的单元格值,并通过 ichart.chartdata[].value 属性将其设置为图表数据的值。
- 使用 ichart.charttitle 属性下的属性设置图表标题。
- 通过 ichart.series.serieslabel 和 ichart.categories.categorylabels 属性设置图表系列标签和类别标签。
- 通过 ichart.series[].values 属性设置图表系列的值。
- 通过 ichart.primarycategoryaxis.numberformat 和 ichart.primaryvalueaxis.numberformat 属性设置轴的数字格式。
- 通过 ichart.chartstyle 属性设置图表的样式。
- 使用 presentation.savetofile() 方法保存演示文稿。
- c#
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 )
{
// 将工作表中的单元格值设置为图表数据的值
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/excel数据创建ppt图表.pptx", fileformat.pptx2019);
presentation.dispose();
workbook.dispose();
}
}
}
将 excel 中的图表以图片形式插入 powerpoint 幻灯片
如果需要在保持外观和格式不变的情况下将 excel 工作表中现有的图表插入到 powerpoint 幻灯片中,可以先使用 workbook.savechartasimage() 方法将 excel 图表保存为图像数据,然后将该其添加到幻灯片中。具体步骤如下:
- 创建一个 presentation 类的实例。
- 创建一个 workbook 类的实例,并使用 workbook.loadfromfile() 方法加载一个 excel 文件。
- 使用 workbook.savechartasimage() 方法将工作表中的图表保存为图像。
- 使用 presentation.images.append() 方法将图像嵌入到演示文稿中。
- 使用 presentation.slides[].appendembedimage() 方法将图像添加到幻灯片中。
- 使用 presentation.savetofile() 方法保存演示文稿。
- c#
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/excel图表插入ppt.pptx", fileformat.pptx2019);
presentation.dispose();
workbook.dispose();
}
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。