如何在VB.NET中将Word模板附加到新文档中?

如何在VB.NET中将Word模板附加到新文档中?,vb.net,visual-studio-2010,ms-word,Vb.net,Visual Studio 2010,Ms Word,我正在四处摸索,看看这个应用程序是否可以实现。基本上,最终用户需要创建一组从数据库填充的导出文档 将有许多文档模板(.dot),最终结果将是用户选择要包含文档的模板x、y和z,单击按钮,让应用程序创建一个新的Word文档,附加模板,然后用适当的数据填充模板 与Crystal Reports不同,它需要在Word中完成的原因是,用户可以在打印文档之前自定义一些字段,因为不同的导出可能会有所不同 这可以通过VB.NET(VS 2010)实现吗 我想是的,但我很难找到解决方案 或者有更好的解决方案吗

我正在四处摸索,看看这个应用程序是否可以实现。基本上,最终用户需要创建一组从数据库填充的导出文档

将有许多文档模板(.dot),最终结果将是用户选择要包含文档的模板x、y和z,单击按钮,让应用程序创建一个新的Word文档,附加模板,然后用适当的数据填充模板

与Crystal Reports不同,它需要在Word中完成的原因是,用户可以在打印文档之前自定义一些字段,因为不同的导出可能会有所不同

这可以通过VB.NET(VS 2010)实现吗

我想是的,但我很难找到解决方案

或者有更好的解决方案吗

以下是我到目前为止所拥有的(我知道的不多)


Word文档只能基于一个。点模板:若要基于模板创建新文档,请将模板的名称传递到文档中。添加方法。无法应用多个模板

如果您的目标是Word 2007,尽管您可以使用

来实现这一目标,请尝试
oSelection.InsertFile(模板路径)
(假设您使用的是选词方法)

这当然会将文件放在选择指针所在的位置。因此,您可能希望移动到末尾,并预先插入一个分页符。

我希望您希望在模板中定义书签,这些书签可以按以下方式填充:

oDoc.ActiveWindow.Selection.GoTo(What:=Word.WdGoToItem.wdGoToBookmark, Name:="Bookmark1")
例如:

Table3 = oDoc.ActiveWindow.Document.Tables.Add(Range:=oDoc.ActiveWindow.Selection.Range, _
                                                              NumRows:=5, _
                                                              NumColumns:=4, _
                                                              DefaultTableBehavior:=Word.WdDefaultTableBehavior.wdWord9TableBehavior, _
                                                              AutoFitBehavior:=Word.WdAutoFitBehavior.wdAutoFitContent)

。。。这类事情

该死,我很难相信这是办不到的,哦,好吧。打开一个模板并将其复制粘贴到一个新文档中,这样做行吗(并保留任何可寻址的字段、图像等)?我看不出有任何原因不行-尽管您不需要这样的“模板”,但使用.doc也行得通。
Table3 = oDoc.ActiveWindow.Document.Tables.Add(Range:=oDoc.ActiveWindow.Selection.Range, _
                                                              NumRows:=5, _
                                                              NumColumns:=4, _
                                                              DefaultTableBehavior:=Word.WdDefaultTableBehavior.wdWord9TableBehavior, _
                                                              AutoFitBehavior:=Word.WdAutoFitBehavior.wdAutoFitContent)