我正在尝试自动化Powerpoint演示文稿。我正在使用OpenXML导航powerpoint演示文稿,直到我发现Excel链接到图表。现在我想使用EPPlus将数据表加载到其中一个工作表中(因为EPPlus有一个简单的LoadFromDataTable函数,而我认为我必须编写大量代码才能使用OpenXML)。 所以我的问题是这个。
我在内存中有一个PresentationDocument。我已经导航到我想要操纵的特定图表:
doc.PresentationPart.SlideParts.ElementAt(0).ChartParts.ElementAt(0)
我使用以下方式获取Excel部分:
var stream = chartpart.EmbeddedPackagePart.GetStream()
然后我尝试了:
using(var pck = new ExcelPackage(stream)) {
`do stuff;
`pck.Save();
}
然后在最后我做了doc.PresentationPart.Presentation.Save但这并没有改变演示文稿。我可以使用OpenXML改为:
using (var xl = Spreadsheet.Document.Open(stream, true))
{
`do stuff;
`xl.Close();
}
其他一切都一样。所以我猜xl.Close()正在做pck.Save()没有的东西,或者我正在使用不正确的流 - 有人可以建议吗?