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

时间:2010-05-05 12:58:28

标签: vb.net visual-studio-2010 ms-word

我正在四处寻找这个应用程序是否可以完成。基本上,最终用户需要创建一堆从数据库填充的导出文档。

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

它需要在Word中完成而不是像Crystal Reports这样的原因是用户可以在打印文档之前自定义某些字段,因为它可能因导出而异。

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

我认为是,但我在追踪解决方案时遇到了困难。

或者是否有更好的解决方案?

这是我到目前为止所做的事情(我知道的不多)

Import Microsoft.Office.Interop

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim oWord As Word.Application
Dim oDoc As Word.Document

oWord = CreateObject("Word.Application")
oWord.Visible = False
oDoc = oWord.Documents.Add
'Open templates x.dot, y.dot, z.dot

'Append above templates to new document created

'Populate new document

oWord.Visible = True

End Sub

End Class

3 个答案:

答案 0 :(得分:1)

Word文档只能基于一个.dot模板:要根据模板创建新文档,您可以将模板名称传递给Documents.Add方法。无法应用多个模板。

如果您的目标是Word 2007,但可以使用'building blocks'

完成此操作

答案 1 :(得分:0)

尝试
oSelection.InsertFile(模板路径)
(假设您使用的是单词选择方法)
这当然会在您的选择指针所在的位置删除文件。所以你可能想要结束并提前分页。

答案 2 :(得分:0)

我希望你能在模板中定义可以填充的书签:

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)

......有点事