使用 C# 和 Microsoft.Office.Interop.Word 访问和填充 Word 2007 文档模板快速部件?

发布于 2024-10-11 11:37:29 字数 236 浏览 1 评论 0原文

我在 Word 2007 中创建了一个文档模板文件 (.dotx),并在其中创建了一个快速部件。我一直在尝试使用 C# 和 Microsoft.Office.Interop.Word 命名空间以编程方式访问此快速部分。一旦我可以访问快速部分,我想用 POCO 的属性填充其字段,然后为列表中的所有 POCO 复制此内容。

到目前为止我还没有成功。有人有这样的运气吗?

注意:如果可能的话,我不想使用 Open XML SDK。

I have created a document template file (.dotx) in Word 2007 and in this I have created a Quick Part. I have been attempting to access this quick part programmatically using C# and the Microsoft.Office.Interop.Word namespace. Once I have access to the Quick Part I want to populate its fields with the properties of a POCO, then replicate this for all the POCO's in a List.

So far I have not been successful. Has anyone had any luck with this?

Note: I do not want to use the Open XML SDK if at all possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一曲琵琶半遮面シ 2024-10-18 11:37:29

另一种方法是使用 POCO 的内容填充自定义 XML 部分。

数据将通过数据绑定内容控件出现在文档的表面上。数据绑定内容控件标识它通过 XPath 绑定到的数据。

一般参见 http://msdn.microsoft.com /en-us/library/ff433638%28v=office.14%29.aspx

An alternative approach would be to populate a Custom XML part with the contents of your POCO.

The data would appear on the surface of the document via data bound content controls. A data bound content control identifies the data to which it is bound via XPath.

See generally http://msdn.microsoft.com/en-us/library/ff433638%28v=office.14%29.aspx

贩梦商人 2024-10-18 11:37:29

我发现我可以使用以下代码从文档模板文件访问快速部件:

    private BuildingBlock GetQuickPartFromTemplate(Microsoft.Office.Interop.Word.Application wordApplication, string wordTemplateDocumentPath, object quickPartName)
    {
        return (from Template template in wordApplication.Templates
                where template.FullName.Contains(Path.GetFileNameWithoutExtension(wordTemplateDocumentpath))
                let index = quickPartName
                select template.BuildingBlockEntries.Item(ref quickPartName)).FirstOrDefault();
    }

第一个参数是Word应用程序,第二个参数是文档模板文件的路径,而第三个参数是快速部件在Word应用程序中的名称。模板。

I found that I could access a Quick Part from a Document Template file using the following code:

    private BuildingBlock GetQuickPartFromTemplate(Microsoft.Office.Interop.Word.Application wordApplication, string wordTemplateDocumentPath, object quickPartName)
    {
        return (from Template template in wordApplication.Templates
                where template.FullName.Contains(Path.GetFileNameWithoutExtension(wordTemplateDocumentpath))
                let index = quickPartName
                select template.BuildingBlockEntries.Item(ref quickPartName)).FirstOrDefault();
    }

The first parameter is the Word Application, the second is the path of the Document Template file, while the third is the name of the Quick Part in the template.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文