我正在尝试在基于Azure应用服务的应用程序中创建一个使用OpenXML的模板系统(因此没有Interop),并且遇到了让它运行的问题。这是我目前正在使用的代码(内容是一个字节数组):
using(MemoryStream stream = new MemoryStream(contents))
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(stream, true))
{
string docText = null;
using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
{
docText = sr.ReadToEnd();
}
Regex regexText = new Regex("<< Company.Name >>");
docText = regexText.Replace(docText, "Company 123");
using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create)))
{
sw.Write(docText);
}
wordDoc.Save();
}
updated = stream.ToArray();
}
搜索文本未找到/替换,我假设是因为所有内容都单独存储在XML中,但我如何更换这样的字段呢?
由于 莱恩
答案 0 :(得分:0)
使用OpenXML SDK,您可以使用此SearchAndReplace - Youtube,请注意,它是一个屏幕投射,显示了可用于完成多个<w:run>
元素替换的算法。
另一种方法是使用纯.NET解决方案,例如Find and Replace text in a Word document。
最后,最简单直接的方法是使用其他一些库,例如检查Find and Replace with GemBox.Document的这个示例。