コードは次のとおりです。
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>();
}
コードの最後の行により、PowerPoint テンプレートが破損します。私の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();
}