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