我想做的是能够在文档中写一些隐藏的标记,这样当用户填写一些信息时,我就可以根据标记或围绕它的部分来处理文档的每个部分。我正在使用.NET,有什么想法吗?谢谢
问问题
1847 次
2 回答
2
看看SdtElements标记、OpenXml Sdk和Word 2007 内容控制工具包
本质是:
- 创建一个 Word 文档作为您的模板
- 在 Word 中,打开开发人员选项卡
- 在 Developer 选项卡中有一个 Controls 组。单击“Aa”插入新的内容标签,单击“属性”编辑标签别名和数据,打开设计模式查看内容标签
如果您的应用程序可以输出您将绑定到文档的 XML,则以下步骤适用:
- 打开 Word 内容控制工具包
- 打开您创建的文档
- 在右侧面板中附加一个 xml
- 双击内容标签以编辑其 XPath 绑定或使用拖放;请参阅 WCCT 手册
准备好模板后,根据您手头的实际任务,您可以使用这些内容标签做很多事情,包括:
- 替换文档中的自定义 xml 部分以更新用户在打开它时将看到的数据
- 使用 openxml sdk 替换数据而不在 Word 中打开它
- 使用模板收集数据(可能但不可靠,不推荐)
- 通过 openxml sdk 从代码中删除和插入内容标签
在您的代码中,您可以通过对 OpenXmlSdk 对象使用 LINQ 查询来找到内容标签,如下所示:
var contentTags = document.MainDocumentPart.Document.Body
.Descendants<SdtElement>()
.Where(x => x.SdtProperties.GetFirstChild<Tag>() != null && x.SdtProperties.GetFirstChild<DataBinding>() != null)
.Select(x => x.SdtProperties.GetFirstChild<Tag>().Val.InnerText =="Whatever Tag you're looking for or other condition to match several")
.ToList();
于 2013-02-18T17:20:25.440 回答