無法將類型為excel.applicationclass的com 強制轉換為介面類型的解決方案[轉]

來源:互聯網
上載者:User

標籤:

 c#解決方案EXCEL 匯出

今天碰到客戶的電腦在匯出EXCEL的時候提示,無法將類型為 excel.applicationclass 的 com 強制轉換為介面類型 excel._application 的問題

最後用下面的方法解決,最主要的就是這句話: “C:\Program Files\Microsoft Office\OFFICE11\excel.exe” /regserver

客戶電腦的故障是原先匯出正常,後來突然不能匯出了,事後估計是因為安裝了WPS的原因,導致相應的組件衝突。

中間過程是卸載WPS,然後重裝OFFICE2003,問題都無法解決,最後就上面的命令重新註冊EXCEL組件後,問題解決。

 

這個問題,正好我也碰到過,而且貌似很多人也碰到過這個問題.

其實這個主要就是 伺服器上沒有安裝office,或者安裝了但是沒有相關許可權.給你一個參考的解決辦法.

一. 如果採用Office 組件進行Excel匯出, 伺服器上必須安裝對應版本的Office(如你開發使用的Office2003,則伺服器也需要安裝Office2003,當然,如果僅僅是匯出Excel 則只需安裝Office Excel), 沒有安裝Office是不能夠進行匯出的.
二.  對於出現類似於 “錯誤碼: 檢索 COM 類別工廠中 CLSID 為{00024500-0000-0000-C000-000000000046} 的組件時失敗,原因是出現以下錯誤: 80070005。” 錯誤,其原因基本上是由於許可權不夠導致的,一般的解決步驟如下:(以下解決方案適用於 WinXp,2003,2008, 包括64位系統, 我所採用的Office 版本為2003)
1:在”開始”->”運行”中輸入dcomcnfg.exe啟動”元件服務”
2:依次雙擊”元件服務”->”電腦”->”我的電腦”->”DCOM配置”
3:在”DCOM配置”中找到”Microsoft Excel 應用程式”,在它上面點擊右鍵,然後點擊”屬性”,彈出”Microsoft Excel 應
用程式屬性”對話方塊
特別注意: 在win2008 64位系統中, 預設是看不到 “Microsoft Excel 應用程式” 這一項的,需要先在 “開始”->”運行”
裡輸入 “mmc -32″ (不要引號) 斷行符號,在彈出的視窗中,
a.在第一個菜單(File)中選擇 “添加/刪除群組件(Add/Remove Snap)”
b.添加”元件服務(Component Services)
c.然後可以在 元件服務(Component Services)下找到 “Microsoft Excel 應用程式” 項
d.此後的操作同 32位作業系統
4:點擊”標識”標籤,選擇”互動式使用者”
5:點擊”安全”標籤,在”啟動和啟用許可權”上點擊”自訂”,然後點擊對應的”編輯”按鈕,在彈出的”安全性”對話方塊中填加
一個”NETWORK SERVICE”使用者(注意要選擇本電腦名稱),並給它賦予”本地啟動”和”本地啟用”許可權.
6:依然是”安全”標籤,在”存取權限”上點擊”自訂”,然後點擊”編輯”,在彈出的”安全性”對話方塊中也填加一個”NETWORK
SERVICE”使用者,然後賦予”本地訪問”許可權.
這樣,我們便配置好了相應的Excel的DCOM許可權.
注意:這是在WIN2003上配置的,在2000,xp上,是配置ASPNET使用者
一般通過以上步驟就能解決問題,當然如果您的問題還沒解決,可以參考以下資料:
1) 查看你的Web.config 中是否有 <identity impersonate=”true”/> 這一項,如果有,請刪除
這段話的目的是為每一個請求進行用戶端類比,按照提示資訊中的解釋,由於沒有設定Username,
所以當前執行的使用者是IUSR_MACHINENAME,而該使用者是沒有操作Excel組件的許可權
如果您需要添加指定使用者的許可權,你可以
<identity impersonate=”true”  userName=”登入名稱”  password=”密碼 “/>
2)如果互動式使用者佈建後出現錯誤8000401a,可取消互動式使用者,指定為administratr,可暫時解決此問題。
注意:採用以上設定後,開啟Excel可能會出現“無法使用對象引用或連結”,並且不能進行儲存格粘貼。
原因不明,取消設定後即可消失。
3)如果同時存在多個Office版本,請確認下預設開啟Excel的版本是哪個,如果有誤則可以採用如下方法重新註冊
開始 -> 運行 -> 輸入excel2003(2007類似)的安裝路徑,
例如 “C:\Program Files\Microsoft Office\OFFICE11\excel.exe” /regserver
注意/符號前面有一個空格,其中”C:\Program Files\Microsoft Office\OFFICE11\excel.exe”
是excel2003的安裝程式的路徑,參數regserver表示註冊的意思
4)如果出現”不能設定類PageSetup的Orientation屬性”的錯誤,檢查下伺服器上是否安裝了印表機,如果沒有
請安裝一個(可以是虛擬印表機,本地)
5)對於64位系統如果還有問題,嘗試下
在 C:\Windows\SysWOW64\config\systemprofile\下建立Desktop檔案夾
然後提升應用池許可權試試.

無法將類型為excel.applicationclass的com 強制轉換為介面類型的解決方案[轉]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.