【问题标题】:Accessing and populating a Word 2007 document templates Quick Parts using C# and Microsoft.Office.Interop.Word?使用 C# 和 Microsoft.Office.Interop.Word 访问和填充 Word 2007 文档模板 Quick Parts?
【发布时间】:2011-01-10 23:26:04
【问题描述】:

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

到目前为止,我还没有成功。有没有人遇到过这种情况?

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

【问题讨论】:

    标签: c#-4.0 ms-word


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的替代方法。不胜感激。
    【解决方案2】:

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

        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应用程序,第二个是文档模板文件的路径,第三个是模板中Quick Part的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多