代码如下,
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();
}
最后一行代码使得power point模板损坏。我的openxml版本是2.5。请告诉我哪里出错了。
以下是我如何加载memoryStreamObj,
{{1}}
答案 0 :(得分:1)
以下是该问题,
memoryStreamObj.GetBuffer();
改为使用以下内容,
memoryStreamObj.ToArray();
MSDN文档如下,
请注意,缓冲区包含可能未使用的已分配字节。例如,如果字符串" test"写入MemoryStream对象,GetBuffer返回的缓冲区长度为256,而不是4,未使用252字节。要仅获取缓冲区中的数据,请使用ToArray方法;但是,ToArray会在内存中创建数据副本。
有关详细信息,请参阅以下链接