[英]Replace Placeholders in word document with c#
我有一个单词(.docx)格式的模板,想要用我自己的数据替换这个模板中的一些占位符,你知道我在哪里可以找到这个项目的正确类吗? 知道命名空间对我来说会很好。 是否有更新的类来处理docx格式(xml)中的word文档而不是com类? 谢谢你的所有答案,我希望有人可以帮我解决我的问题。
招呼
塞巴斯蒂安
新的办公室格式(docx,xlsx等)是包含xml文件集合的zip文件。 考虑到这一点,你有几种方法。
您可以使用位于http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en的Open XML SDK 。
您可以解压缩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.