.NET导出Excel遇到的错误的解决方法

转载 2015年11月18日 11:58:52
.NET导出Excel遇到的80070005错误的解决方法: 
检索 COM 类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基本上.net导出excel文件,都需要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错。 
具体配置方法如下: 
1:在服务器上安装office的Excel软件. 
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 
4:在"DCOM配置"中找到"MicrosoftExcel 应用程序",在它上面点击右键,然后点击"属性",弹出"MicrosoftExcel 应用程序属性"对话框 
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\MicrosoftOffice\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的版本环境!如此基本能够解决这些问题了

关于打开excel的同时正在导出excel,报错此excel已经打开

关于打开excel的同时正在导出excel,报错此excel已经打开

mysql导入excel表格数据时出错的解决

Navicat for MySQL导入数据时报错 1:导入的是Excel2007表格格式的数据。 2: 报错以后数据加进去了。(选择了错误继续执行) 3:这个错误对我的数据有影响吗? ...
  • fanblog
  • fanblog
  • 2016年09月13日 09:32
  • 4396

excel导出的功能发布到服务器上报错问题,终于解决了!!

今天遇到一个特别棘手的问题,但是y
  • lxfzgg
  • lxfzgg
  • 2014年05月04日 15:14
  • 6277

.NET导出Excel遇到的80070005错误的解决方法:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基本上.net导出excel文件...

asp.net 导出excel 中文乱码解决方法

用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象, 其实要解决中文乱码很简单,设置一下字符集。如下: ...
  • ranbolwb
  • ranbolwb
  • 2012年05月29日 10:29
  • 17414

.net缩略图 GDI+一般性错误解决方法。

public void CreateMinImageAndDel(string originalImagePath, string thumbnailPath, int width, int heig...

无法向会话状态服务器发出会话状态请求 没有启动 ASP.NET State service错误的解决方法

最近由于需要,又把放下的dotnet重新拾了起来。结果刚引了一个网站就报错如下:无法向会话状态服务器发出会话状态请求。请确保已启动 ASP.NET State service,并且客户端和服务器端口是...

Asp.net Ajax 中的脚本错误: Sys未定义 的解决方法

解决在使用Ajax控件时出现的"Sys未定义" 1.安装ASPAJAXExtSetup.msi,把   AJAXExtensionsToolbox.dll    System.Web.Extensio...

.net 错误解决方法记录

1.发布网站,出现:分析器错误信息: 发现不明确的匹配 解决方案: 查找你的aspx页面里面的控件是否有和你的aspx.cs里面的类变量重名(不区分大小写)的ID 唉,这个错误害我查了半...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET导出Excel遇到的错误的解决方法
举报原因:
原因补充:

(最多只允许输入30个字)