2010-05-05 90 views
0

我在周圍看看這個應用程序是否可以完成。基本上,最終用戶需要創建一堆從數據庫填充的導出文檔。如何將Word模板附加到VB.NET中的新文檔中?

將會有大量文檔模板(.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 

回答

1

Word文檔只能基於一個.DOT模板:創建基於模板的新文檔中,您會通過的名稱將該模板導入Documents.Add方法。沒有辦法應用多個模板。

如果你的目標Word 2007中,雖然你可以做到這一點使用'building blocks'

+0

媽的,我很難相信它不能完成,哦,好吧。如何打開一個模板並將其複製並粘貼到一個新文檔中,是否可以工作(並保留任何可尋址的字段,圖像等)? – Tom 2010-05-05 14:31:42

+0

我沒有看到任何理由不起作用 - 儘管你不需要這樣的'模板',但使用.doc也可以。 – stuartd 2010-05-06 16:11:48

0

嘗試
oSelection.InsertFile(模板路徑)
(假設你使用這個詞的選擇方法)
這當然無論你的選擇指針是什麼,都要刪除文件。所以你可能會想要移動到結束並預先拋出分頁符。

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) 

...之類的話

相關問題