小编Ste*_*dal的帖子

11
推荐指数
3
解决办法
8634
查看次数

添加到从MemoryStream打开的WordprocessingDocument而不会得到"内存流不可扩展"?

使用Open XML SDK,当我到达FeedData(msData)行时,下面给出"内存流不可扩展":

// Bytes in, bytes out
internal static byte[] UpdateDataStoreInMemoryStream(byte[] bytes,
   XmlDocument xdocData)
{
   using (var msDoc = new MemoryStream(bytes))
   {
      using (WordprocessingDocument wd = WordprocessingDocument.Open(msDoc, true))
      {
         MainDocumentPart mdp = wd.MainDocumentPart;
         CustomXmlPart cxp = mdp.CustomXmlParts.SingleOrDefault<CustomXmlPart>();
         using (MemoryStream msData = new MemoryStream())
         {
            xdocData.Save(msData);
            msData.Position = 0;
            // Replace content of ...\customXml\item1.xml. 
            cxp.FeedData(msData);
            // "Memory stream is not expandable" if more data than was there initially.
         }
      }
      return msDoc.ToArray();
   }
}
Run Code Online (Sandbox Code Playgroud)

注意:问题不是msData,而是msDoc.

斯坦 - 托雷

openxml-sdk

4
推荐指数
1
解决办法
2578
查看次数