引用Microsoft.Office.Interop.Excel出現的問題

來源:互聯網
上載者:User

轉自:http://www.hccar.com/Content,2008,6,11,75.aspx,作者:方繼祥

操作背景:asp.net操作Excel

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

初步診斷:伺服器沒有安裝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檔案)

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.