透過程式操作 Word 物件,把值塞進去。可是在程式運行的過程裡,Word 視窗一直跳出來。雖然未來這個視窗應該只會出現在 server side,但總覺得怪怪的,所以想想還是把它關掉的好。找了一下,在這篇《是否可以在背景開啟 Word 文件》得到提示:要改變開啟檔案時的參數值。

這個參數塞得很裡面,在第 12 個參數。懶得記的話也可以看程式碼提示 (intellisence) 的參數說明。

' 欲開啟的 word 檔名
Dim oldFileName As String = "test.doc"
' Word 物件相關變數
Dim paramMissing As Object = Type.Missing
Dim wordApp As WORD.ApplicationClass = New WORD.ApplicationClass()
Dim wordDoc As WORD.Document = Nothing
' 在開啟檔案的第 12 個參數設定 false,表示不顯示應用程式
wordDoc = wordApp.Documents.Open(oldFileName, paramMissing, paramMissing, paramMissing, paramMissing, paramMissing,paramMissing, paramMissing, paramMissing, paramMissing, paramMissing, False, paramMissing, paramMissing, paramMissing, paramMissing)




殘念的是,在開發端好端端的,但程式碼上了 Production 之後還會跑出錯誤訊息:

由於發生下列錯誤,為具有 CLSID {000209FF-0000-0000-C000-000000000046} 的元件擷取 COM Class Factory 失敗: 80070005。


趕快按照《ASP.NET開啟 Word檔-權限設定》《線上列印-Word》指導的設定調整 COM 元件的權限,權限設定的地方在這裡:

系統管理工具→元件服務→電腦→我的電腦→DCOM 設定→Microsoft Word文件→右鍵「內容」



目前看起來似乎是很正經的執行著,不過在網路上剛好有看到這個討論串說到一人以上使用會當機。希望可以早日找到合適的替代方案。





arrow
arrow
    全站熱搜

    小攻城師 發表在 痞客邦 留言(0) 人氣()