> 文章列表 > win7 64位系统web项目导出excel问题分析及解决方法汇总

win7 64位系统web项目导出excel问题分析及解决方法汇总

最近在web项目中做了一个导出Excel功能。在导出的时候报错:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败。

一般情况下,不能正确导出excel的原因有三个
1、用户权限不够;
2、应用程序池没有配置正确;
3、导出后是在服务器还是客户端没有搞清楚。

对于上面提到的报错,属于用户权限不够,所以需要设置用户相应的权限。
很多网友提出解决方案:在\"开始\"->\"运行\"中输入dcomcnfg.exe启动\"组件服务\",然后一步一步的找到Microsoft Excel,然后对该项进行设置,然后在64位机上找不到Excel应用程序。

由于dcomcnfg是32位配置,在64位系统下能够完全被支持。所以只需要找到打开32位的dcomcnfg的方式就可以解决找不到的问题了:
1.运行:mmc -32;
2.打开“文件”-“添加或删除管理单元”-选择组件服务-点击添加-确定;
3.可以在DCOM组件中找到Microsoft Excel Application了。

找到后,对Microsoft Excel进行设置
1.右击选择属性,点击\"标识\"标签,选择\"交互式用户\";
2.点击\"安全\"标签,在\"启动和激活权限\"上点击\"自定义\",然后点击对应的\"编辑\"按钮,在弹出的\"安全性\"对话框中填加一个\"NETWORK SERVICE\"用户(注意要选择本计算机名),并给它赋予\"本地启动\"和\"本地激活\"权限;
3.依然是\"安全\"标签,在\"访问权限\"上点击\"自定义\",然后点击\"编辑\",在弹出的\"安全性\"对话框中也填加一个\"NETWORK SERVICE\"用户,然后赋予\"本地访问\"权限。
参考:http:///os/windows/win2008/73326.html

用户有了权限,还需要对应用程序池正确配置,不然仍然有可能导出不成功。
打开iis,然后打开应用程序池的高级设置,点击进程模式,将网站的AppPool标识设置为NetworkService;打开常规,设置启动32位应用程序为true。对IIS进行这两步设置,应该就够了。
如果仍然不能导出成功,你就该考虑第三种情况了:你在客户端可能将文件导出到了服务器。解决方案也比较简单,换一种思路呗。大家可以参考下面这篇文章,里面有各种导出Excel的方案:
参考:http:///article/34091.htm

这里再次导出的时候,由于会有服务器到客户端的数据传输,还会遇到显示格式的问题,我这里就不做详细说明了,提供给大家一个链接,如果遇到此问题的话,可以做个参考:
参考:http:///article/34092.htm

另外,如果你想给导出的Excel文件起个中文名字,您还会遇到编码解码问题,这个就不提供链接了,网上关于编码的问题多的是,大家自己看着解决吧。
本文主要分析了导出Excel的各种原因,以及给出了简要的解决思路。如果大家还有跟好的解决方法,欢迎指正。