6

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

打招呼

塞巴斯蒂安

4

4 回答 4

5

新的办公格式(docx、xlsx 等)是包含 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。

于 2008-10-08T11:47:56.150 回答
1

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

于 2008-10-08T14:05:07.153 回答
1

我用过这个:

IEnumerable test2 = from element in body.Elements() where element.InnerText.Contains("sdt") 选择元素;

于 2010-04-09T13:52:11.707 回答
0

顺便说一句,使用 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 没有给我任何机会吗?

于 2008-10-10T07:27:01.650 回答