EPPlus与OpenXML和流

时间:2017-03-02 16:40:52

标签: c# .net openxml epplus memorystream

我正在尝试自动化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()没有的东西,或者我正在使用不正确的流 - 有人可以建议吗?

0 个答案:

没有答案