asp.net 導出Excel 錯誤解決備忘
網站項目要用到導出為excel文件的功能,程序運行時報錯:"檢索 COM 類工廠中 CLSID 為{000-0000-0000-C0046} 的組件時失敗,原因是出現以下錯誤: 。"上網又查了半天,終于找到了解決方案,原來是權限設置的問題,解決方法如下:
1:在服務器上安裝office的Excel軟件.
2:在"開始"->"運行"中輸入dcomcnfg.exe啟動"組件服務"
3:依次雙擊"組件服務"->"計算機"->"我的電腦"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 應用程序",在它上面點擊左鍵,然后點擊"屬性",彈出"Microsoft Excel 應
用程序屬性"對話框
5:點擊"標識"標簽,選擇"交互式用戶"
6:點擊"安全"標簽,在"啟動和激活權限"上點擊"自定義",然后點擊洞喀的"編輯"按鈕,在彈出的"安全性"對話框中填加
一個"NETWORK SERVICE"用戶(注意要選擇本計算機名),并給它付與"本地啟動"和"本地激活"權限.
7:依然是"安全"標簽,在"訪問權限"上點擊"自定義",然后點擊"編輯",在彈出的"安全性"對話框中也添加"NETWORK
SERVICE"用戶,然后付與"本地訪問"權限.
這樣,我們便配置好了響應的Excel的DCOM權限.
注意:這是在WIN2003上配置的,在2000上,可能是配置ASPNET用戶
由于EXCEL是在服務器上的,該寫一個把導出數據保存在服務器上,然后再傳遞給客戶端的方法,最后每次調
用這個功能的時候再刪除以前在服務器上所天生的所有Excel
------
但按照方法在系統的DCOM設置里卻沒有發現 Microsoft Excel 應用程序 ??
------
之后找到了原因,如下,是由于我使用的是64位系統導致:
主要是64位系統的問題,excel是32位的組件,所以在正常的系統組件服務里是看不到的
可以通過在運行里面輸入 comexp.msc -32 來打開32位的組件服務,在里就能看到excel組件了
新聞熱點
疑難解答