(轉).net使用Office組件讀取Excel,引用Microsoft.Office.Interop.Excel出現的問題

內容轉自:http://www.tech-q.cn/thread-2093-1-1.html

出現問題:在本地添加引用(com):Microsoft Office 11.0 Object Library,並寫好程序調試正常,部署到服務器時,出現異常 Excel.Application不是對象.

初步診斷:服務器沒有安裝Office 和 Excel組件
第一步嘗試解決:對服務器安裝Excel等Office組件,進一步測試程序:失敗!
第二步嘗試解決:將Excel.exe生成Interop.Excel.dll,然後用sdk引用該Dll,編譯成功,測試程序:成功!
原因:本地引用的com不會在程序的bin目錄生成dll文件,而程序是根據路徑在尋找dll的.部署到服務器上時,假如Excel等dll與本地路徑不一致,將會拋出異常,定義的Excel對象肯定是不存在的.

具體方法:
1、如何生成Interop.Excel.dll?
     進入你的visual studio的sdk下的bin目錄,找到TlbImp.exe文件,如果沒有,請用光盤安裝此文件,詳細說明請參照MSDN。
     命令行(cmd)進入bin目錄,運行TlbImp /out:Interop.Excel.dll Office安裝目錄+Excel.exe
     此時很可能會報錯:TlbImp   error:   Unable   to   locate   input   type   library:   'c:/program files/mcrosoft offi   
  ce/office/EXCEL.EXE'
     此問題很有可能是TlbImp的bug,不支持空格式的路徑;(具體原因不明)不要緊,將Excel.exe拷貝入bin目錄,直接運行TlbImp /out:Interop.Excel.dll Excel.exe,提示“Type library imported to Interop.Excel.dll路徑”
     在bin目錄下找到Interop.Excel.dll文件。在你的visual studio裏將其引用即可。

2、如果是excel2000或excel2002怎麼辦?
如果是Excel2000,則將Excel.exe改成Excel9.olb
  Excel2002同2003

3、各種版本的引用組件參數如下:

文件/版本 Interop.Excel.dll Interop.Office.dll Interop.VBIDE.dll 添加引用/COM組件
2000 V1.3.0.0 V2.1.0.0 V5.3.0.0 Microsoft Excel 9.0 Object Library(EXCEL9.OLB)
2002(xp) V1.4.0.0 V2.2.0.0 V5.3.0.0 Microsoft Excel 10.0 Object Library(Excel.EXE文件)
2003 V1.5.0.0 V2.3.0.0 V5.3.0.0 Microsoft Excel 11.0 Object Library(Excel.EXE文件)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章