1. 程式人生 > >.NET匯出Excel遇到的錯誤的解決方法

.NET匯出Excel遇到的錯誤的解決方法

.NET匯出Excel遇到的80070005錯誤的解決方法: 
檢索 COM 類工廠中 CLSID為 {00024500-0000-0000-C000-000000000046}的元件時失敗,原因是出現以下錯誤: 80070005基本上.net匯出excel檔案,都需要如此配置一下,不配置有的時候沒錯,而配置後基本應該不會出錯。 
具體配置方法如下: 
1:在伺服器上安裝office的Excel軟體. 
2:在"開始"->"執行"中輸入dcomcnfg.exe啟動"元件服務" 
3:依次雙擊"元件服務"->"計算機"->"我的電腦"->"DCOM配置" 
4:在"DCOM配置"中找到"MicrosoftExcel 應用程式",在它上面點選右鍵,然後點選"屬性",彈出"
Microsoft
Excel 應用程式屬性"對話方塊 5:點選"標識"標籤,選擇"互動式使用者" 6:點選"安全"標籤,在"啟動和啟用許可權"上點選"自定義",然後點選對應的"編輯"按鈕,在彈出的"安全性"對話方塊中填加一個"NETWORK SERVICE"使用者(注意要選擇本計算機名),並給它賦予"本地啟動"和"本地啟用"許可權. 7:依然是"安全"標籤,在"訪問許可權"上點選"自定義",然後點選"編輯",在彈出的"安全性"對話方塊中也填加一個"NETWORK SERVICE"使用者,然後賦予"本地訪問"許可權. 8.如果互動式使用者設定後出現錯誤8000401a,可取消互動式使用者,指定為administratr,可暫時解決此問題。進一步的解決方式還有待探討。
9.採用第8點的設定後,開啟Excel可能會出現“無法使用物件引用或連結”,並且不能進行單元格貼上。原因不明,取消設定後即可消失。 另外說明:光按以上設定並不能完全保證不出問題,因為呼叫OFFICE的操作可能涉及其他的系統資源,很可能依然許可權不夠而導致問題,只是設定EXCEL應用程式後,還是可能會報80070005的錯誤,最保險的是應該在dcomcnfg中選中我的電腦然後右鍵屬性->com安全,將裡面的訪問許可權,啟動和啟用許可權全都編輯預設,在當中加上network service(iis 5.0的話,要加的是asp.net使用者),並如前面對networkservice設定上相同的許可權,這樣基本上能保證不會再出什麼問題。 以上為基本出路方法,但是我也遇到過應用以上方法還是報錯的情況,我的環境是windows2003 + office2003+office2007,在測試伺服器上都可以匯出無任何問題!但是更新了正式環境就是報錯,許可權都設定了還是報錯,因為我的測試伺服器是預設office啟動的,所以我懷疑是office版本環境問題!於是我解除安裝了office2007,馬上測試ok了,但是重啟伺服器後就產生了have not been Pre-compiled錯誤,匯出頁面都無法打開了,於是我又重新安裝了office2007,頁面可以打開了,但是匯出excel時又開始報錯!我又把所有的許可權重新設定一遍,問題依舊!後來發現兩個伺服器預設開啟excel的程式不一樣,測試環境是預設office2003開啟,正式環境是office2007開啟,於是我在正式環境重新註冊office2003,使其同樣也是預設office2003開啟程式,靠!問題終於解決了!!! 註冊方法 執行 開始----執行----輸入excel2003的安裝路徑,例如 "C:\Program Files\
Microsoft
Office\OFFICE11\excel.exe" /regserver 注意/符號前面有一個空格,其中"C:\Program Files\Microsoft Office\OFFICE11\excel.exe" 是excel2003的安裝程式的路徑,引數regserver表示註冊的意思! 執行後,會啟動Office 2003的安裝程式,進行修復,重新註冊。 excel2007為預設的啟動程式的方法類同,可以執行 開始----執行----"D:\Program Files\Microsoft Office\Office12\excel.exe" /regserver 綜上所述,再遇到Excel匯出、匯入問題時,先考慮許可權問題,再考慮office的版本環境!如此基本能夠解決這些問題了