Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 使用C#和Microsoft.Office.Interop.Word访问和填充Word 2007文档模板快速零件?_C# 4.0_Ms Word - Fatal编程技术网

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

C# 4.0 使用C#和Microsoft.Office.Interop.Word访问和填充Word 2007文档模板快速零件?,c#-4.0,ms-word,C# 4.0,Ms Word,我在Word 2007中创建了一个文档模板文件(.dotx),并在其中创建了一个快速部件。我一直在尝试使用C#和Microsoft.Office.Interop.Word命名空间以编程方式访问此快速部件。一旦我访问了Quick Part,我想用POCO的属性填充它的字段,然后为列表中的所有POCO复制这个属性 到目前为止,我还没有成功。有人在这件事上运气好吗 注意:如果可能的话,我不想使用OpenXMLSDK。另一种方法是用POCO的内容填充自定义XML部件 数据将通过数据绑定内容控件显示在文档

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

到目前为止,我还没有成功。有人在这件事上运气好吗


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

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

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


一般参见

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

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

感谢您提供的替代方法。非常感谢。