将图表链接到外部工作簿
概述
将图表指向外部工作簿,而不是将所有源数据嵌入到演示文稿中。您可以设置工作簿路径,并选择是否从该文件更新图表。保存的图表还可以携带缓存的显示数据。
使用示例
此 C# 示例使用 Aspose.Slides for .NET。创建一个有效的销售工作簿,North = 55、South = 40,并将其写入与输出文件同目录下的 sales.xlsx。将图表的 North 值重置为 20,然后将图表链接到工作簿的绝对路径并刷新:North 再次变为 55。显式范围包括标题行和两行数据。重新打开或更新链接的图表时,请保留 sales.xlsx 可用;演示文稿不会嵌入此外部文件。无需输入文件。它会保存 external-chart-workbook.pptx 和 external-chart-workbook.png。使用安装指南安装库。
using System;
using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.Charts;
using System.IO;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 40, 40, 620, 350);
chart.HasTitle = false;
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
var workbook = chart.ChartData.ChartDataWorkbook;
workbook.Clear(0);
var firstCategory = workbook.GetCell(0, 1, 0, "North");
var secondCategory = workbook.GetCell(0, 2, 0, "South");
chart.ChartData.Categories.Add(firstCategory);
chart.ChartData.Categories.Add(secondCategory);
var nameCell = workbook.GetCell(0, 0, 1, "Sales");
var series = chart.ChartData.Series.Add(nameCell, chart.Type);
var firstValue = workbook.GetCell(0, 1, 1, 20);
var secondValue = workbook.GetCell(0, 2, 1, 40);
series.DataPoints.AddDataPointForBarSeries(firstValue);
series.DataPoints.AddDataPointForBarSeries(secondValue);
firstValue.Value = 55;
var workbookPath = Path.GetFullPath("sales.xlsx");
using (var workbookStream = chart.ChartData.ReadWorkbookStream())
using (var workbookFile = File.Create(workbookPath))
{
workbookStream.CopyTo(workbookFile);
}
firstValue.Value = 20;
chart.ChartData.SetExternalWorkbook(workbookPath, true);
chart.ChartData.SetRange("Sheet1!$A$1:$B$3");
presentation.Save("external-chart-workbook.pptx", SaveFormat.Pptx);
using var image = presentation.Slides[0].GetImage(1f, 1f);
image.Save("external-chart-workbook.png", ImageFormat.Png);
常见问题
当链接的文件缺失时,我能读取所有缓存值吗?
Aspose.Slides for .NET 26.11 可在不打开链接工作簿的情况下直接读取存储的图表值。这包括普通值、X/Y 值、气泡大小和类别值(在存在这些缓存时)。缓存数据可能缺失或过时;它并非完整的工作簿。要从源刷新仍需可用的受支持工作簿。对于其他 SDK 和版本,请查看相应的图表指南。
如果外部工作簿被移动会怎样?
将图表的外部工作簿路径更新为新位置,并确保该文件在演示文稿处理的任何位置均可用。缺失时不要依赖缓存数据进行完整的数据访问操作。
链接时,我能选择是否刷新缓存的图表数据吗?
可以。设置链接时选择是否更新图表数据。刷新需要可用的受支持工作簿;跳过刷新仅记录链接,而不从该文件读取新值。
指南
相关功能: 使用数据填充可编辑图表.
所有功能 (English)