时间:2021-05-23
最近在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://jb51.net/os/windows/win2008/73326.html
用户有了权限,还需要对应用程序池正确配置,不然仍然有可能导出不成功。
打开iis,然后打开应用程序池的高级设置,点击进程模式,将网站的AppPool标识设置为NetworkService;打开常规,设置启动32位应用程序为true。对IIS进行这两步设置,应该就够了。
如果仍然不能导出成功,你就该考虑第三种情况了:你在客户端可能将文件导出到了服务器。解决方案也比较简单,换一种思路呗。大家可以参考下面这篇文章,里面有各种导出Excel的方案:
参考:http://jb51.net/article/34091.htm
这里再次导出的时候,由于会有服务器到客户端的数据传输,还会遇到显示格式的问题,我这里就不做详细说明了,提供给大家一个链接,如果遇到此问题的话,可以做个参考:
参考:http://jb51.net/article/34092.htm
另外,如果你想给导出的Excel文件起个中文名字,您还会遇到编码解码问题,这个就不提供链接了,网上关于编码的问题多的是,大家自己看着解决吧。
本文主要分析了导出Excel的各种原因,以及给出了简要的解决思路。如果大家还有跟好的解决方法,欢迎指正。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
安装环境及说明操作系统:64位win7以下所有安装包已经被我打包至网盘,请移步到http:///file/4591550进行下载因为在64位win7下面安装64
故障原因分析:出现这样问题可能是系统文件损坏引起的,大家可以使用系统自带的修复功能解决此问题。 解决方法: 1、首先打开win7系统的开始菜单,点击运行,在
教你在XP或win7下用硬盘安装64位WIN8.1系统32位的直接安装.64位win7或win8都一样。工具/原料首先下载一个NT6工具一个64位的win8.1
win7无法访问windows2003共享文件,但windows2003可以访问该win7系统,win7之间也可以相互访问,查来查去原来是本地策略问题。解决方法
w732位和64位支持的内存大小不同,32位win7系统显示只有不到3.5G的可使用内存,而64位系统理论上对内存没有大小的限制。 Win7旗舰版(Windo