[英]How to search and replace text in Word document using OpenXML?
我有一个.docx文件和Dictionary<string,string>
。 我需要去通过文件,并替换文本eqaul到Dictionary.Key
在其根据值Dictionary
。 它将在服务器上,因此,我不想使用生成COM对象的Microsoft.Office.Interopt
库。 对于该解决方案,我更喜欢OpenXML
,但对我而言,在Web上没有适用的解决方案。 我找到了埃里克·怀特(Eric White)的解决方案 。 它对我不起作用。 确切地说,我运行方法SearchAndReplace
但是文档中没有任何更改。 我PutXmlInDocument
研究了这些方法,发现问题出在方法PutXmlInDocument
方法中,该方法通过获取XmlDocument
流将其保存到给定的OpenXmlPart
中。 使用OpenXML
是否还有其他解决方案,或者如何将XmlDocument
保存到OpenXmlPart
?
是保存失败的方法:
public static void PutXmlDocument(OpenXmlPart part, XmlDocument xmlDoc)
{
using (Stream partStream = part.GetStream(FileMode.Create, FileAccess.Write))
using (XmlWriter partXmlWriter = XmlWriter.Create(partStream))
xmlDoc.Save(partXmlWriter);
}
我联系了博客,并询问了这种情况。 最后,我到达了这个解决方案。 如果每个WordprocessingDocument
替换次数为1,则Eric White的解决方案效果很好。 但是,如果它大于1,则在对所有替换进行组合之后,必须在使用WordprocessingDocument
进行操作之前调用以下方法。
WordprocessingDocument.Package.Close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.