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


 

今天碰到客戶的電腦在導出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文件夾
然后提升應用池權限試試.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 無法將類型為“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 對象強制轉換為接口類型 無法將類型為“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 對象強制轉換為接口類型“Microsoft.Office.Interop.Excel._Application” 無法將類型為“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 對象強制轉換為接口類型“Microsoft.Office.Interop.Excel._Application” 無法將類型為“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 對象強制轉換為接口類型“Microsoft.Office.Interop.Word._Application”。 無法將類型為“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 對象強制轉換為接口類型“Microsoft.Office.Interop.Word._Application” System.InvalidCastException: 無法將類型為“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 對象強制轉換為接口類型“Microsoft.Office.Interop.Word._Application”。 無法將類型為“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 對象強制轉換為接口類型“Microsoft.Office.Interop.Word._Application” (轉)無法將類型為“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 對象強制轉換為接口類型“Microsoft.Office.Interop.Word._Application”。此操作失敗的原因是對 IID 為“{00020970- 無法將類型為“System.__ComObject”的 COM 對象強制轉換為接口類型,原因為沒有注冊類 無法將類型為“Excel.ApplicationClass”的 COM 對象強制轉換為接口類 型“Excel._Application”。此操作失敗的原因是對 IID 為“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 組件調用 QueryInterface 因以下錯誤而失敗: 加載類型庫/DLL 時出錯。 (異常來 自 HRESULT:
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM