繁体   English   中英

如何使用OpenXML搜索和替换Word文档中的文本?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM