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组件了