我已经加载了一个带有 word 文档的内存流,我希望能够更改内存流中的特定文本并将其保存回 word 文档,例如搜索和替换功能。请任何人都可以帮我解决这个问题,因为我不想使用 Word Interop 库。我已经有了加载和保存文档的代码,请参见下文。问题是,如果我将内存字符串转换为字符串并使用字符串替换方法,当我保存字符串时,word 文档中的所有格式都会丢失,当我打开文档时,它显示的只是到处都是黑框。
private void ReplaceInFile(string filePath, string searchText, string replaceText)
{
byte[] inputFile = File.ReadAllBytes(filePath);
MemoryStream memory = new MemoryStream(inputFile);
byte[] data = memory.ToArray();
string pathStr = Request.PhysicalApplicationPath + "\\Docs\\OutputDocument.doc";
FileInfo wordFile = new FileInfo(pathStr);
FileStream fileStream = wordFile.Open(FileMode.Create, FileAccess.Write, FileShare.None);
fileStream.Write(data, 0, data.Length);
fileStream.Close();
memory.Close();
}
我从互联网上的示例代码中复制了代码。所以这就是为什么使用 memorystream 的原因,因为我不知道该怎么做。我的问题是我工作的公司不想使用 interop 这个词,因为有时他们发现这个词可以在阻止编码功能执行的情况下显示弹出对话框。这就是为什么我想研究以编程方式实现邮件合并功能的方法。多年前我确实做了一件与我想在这里做的事情非常相似的事情,但在 Delphi 而不是 C# 中,我通常会丢失代码。因此,如果有人能对此有所了解,我将不胜感激。