代码如下,
using (PresentationDocument presentationDocumentObj = PresentationDocument.Open(memoryStreamObj,true))
{
PresentationPart presentationPart = presentationDocument.PresentationPart;
// Check for a null document object.
if (presentationDocument == null)
{
throw new ArgumentNullException("presentationDocument");
}
// Get the Slide Id collection of the presentation document
var slideIdList = presentationPart.Presentation.SlideIdList;
if (slideIdList == null)
throw new NullReferenceException("The number of slide is empty, please select a ppt with a slide at least again");
// Get all Slide Part of the presentation document
var list = slideIdList.ChildElements.Cast<SlideId>().Select(x => presentationPart.GetPartById(x.RelationshipId)).Cast<SlidePart>();
}
最后一行代码使 power point 模板损坏。我的 openxml 版本是 2.5。任何人请告诉我我要去哪里错了。
- 编辑
这是我加载 memoryStreamObj 的方式,
byte[] reportByteArray = null;
using (MemoryStream memoryStreamObj = new MemoryStream())
{
memoryStreamObj.Write(reportTemplateByteArray, 0, (int)reportTemplateByteArray.Length);
using (PresentationDocument presentationDocumentObj = PresentationDocument.Open(memoryStreamObj,true))
{
//made changes to template
}
reportByteArray = memoryStreamObj.GetBuffer();
}