繁体   English   中英

用c#替换word文档中的占位符

[英]Replace Placeholders in word document with c#

我有一个单词(.docx)格式的模板,想要用我自己的数据替换这个模板中的一些占位符,你知道我在哪里可以找到这个项目的正确类吗? 知道命名空间对我来说会很好。 是否有更新的类来处理docx格式(xml)中的word文档而不是com类? 谢谢你的所有答案,我希望有人可以帮我解决我的问题。

招呼

塞巴斯蒂安

新的办公室格式(docx,xl​​sx等)是包含xml文件集合的zip文件。 考虑到这一点,你有几种方法。

  1. 您可以使用位于http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en的Open XML SDK

  2. 您可以解压缩docx文件,搜索并替换您的令牌,然后将其压缩回来。

openxmldeveloper.org上有一个专门针对此类网站的网站。 另外,请记住他们已经发布了SDK的beta版本2。

Eric White在一篇博客文章中详细介绍了这个主题,该文章详细介绍了一个旨在验证DocX文件中嵌入的源代码片段的程序 除了那篇文章,我强烈建议阅读他关于Office Open XML和C#的系列文章。

我用过这个:

IEnumerable test2 =来自body.Elements()中的元素,其中element.InnerText.Contains(“sdt”)选择元素;

顺便使用xml我发现这个解决方案找到了所有的sdt节点

 NameTable nt = new NameTable();
        XmlNamespaceManager nsManager = new XmlNamespaceManager(nt);
        nsManager.AddNamespace("w", wordmlNamespace);

        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(doc.MainDocumentPart.GetStream());

        XmlNodeList nodeList = xDoc.SelectNodes(@"./w:document/w:body//w:sdt", nsManager);

它有效,但Open XML Format SDK 2.0没有给我任何机会吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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