Got a message “ MEMORY STREAM IS NOT EXPANDABLE” after using WordprocessingDocument base on Microsoft site on MVC

  • Thread starter Thread starter Le Thien Hoang
  • Start date Start date
L

Le Thien Hoang

Guest
Currently, I was base on "Search and replace text in a document part (Open XML SDK)" on the Microsoft site. I've realized that the code got an issue after the file has downloaded to my drive.

So I opened that file and got a message


MEMORY STREAM IS NOT EXPANDABLE at sw.Write(docText);

How to fix that?

In GenerateDocxHelper class:

private readonly MemoryStream _mem;
private Dictionary<string, string> _dicData;

public GenerateDocxHelper(string path)
{
_mem =
new MemoryStream(System.IO.File.ReadAllBytes(path));
_dicData =
new Dictionary<string, string>();
}

public MemoryStream ReplaceTextInWord()
{
using (
WordprocessingDocument wordDoc = WordprocessingDocument.Open(_mem, true))
{


string docText = null;
using (
StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
docText = sr.
ReadToEnd();
}


foreach (var data in _dicData)
{
docText = docText.
Replace(data.Key, data.Value);
}

using (
StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.
Write(docText);
}
}

_mem.
Seek(0, SeekOrigin.Begin);



Continue reading...
 
Back
Top