win7 64位系统web项目导出Excel问题汇总
2013-02-18 09:13
281 查看
最近在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://www.cnblogs.com/systemnet123/articles/2579506.html
用户有了权限,还需要对应用程序池正确配置,不然仍然有可能导出不成功。
打开iis,然后打开应用程序池的高级设置,点击进程模式,将网站的AppPool标识设置为NetworkService;打开常规,设置启动32位应用程序为true。对IIS进行这两步设置,应该就够了。
如果仍然不能导出成功,你就该考虑第三种情况了:你在客户端可能将文件导出到了服务器。解决方案也比较简单,换一种思路呗。大家可以参考下面这篇文章,里面有各种导出Excel的方案:
http://www.cnblogs.com/qixuejia/archive/2010/01/30/1659627.html
这里再次导出的时候,由于会有服务器到客户端的数据传输,还会遇到显示格式的问题,我这里就不做详细说明了,提供给大家一个链接,如果遇到此问题的话,可以做个参考:
http://blog.csdn.net/zengxin2008/article/details/6367869
另外,如果你想给导出的Excel文件起个中文名字,您还会遇到编码解码问题,这个就不提供链接了,网上关于编码的问题多的是,大家自己看着解决吧。
本文主要分析了导出Excel的各种原因,以及给出了简要的解决思路。如果大家还有跟好的解决方法,欢迎指正。
一般情况下,不能正确导出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://www.cnblogs.com/systemnet123/articles/2579506.html
用户有了权限,还需要对应用程序池正确配置,不然仍然有可能导出不成功。
打开iis,然后打开应用程序池的高级设置,点击进程模式,将网站的AppPool标识设置为NetworkService;打开常规,设置启动32位应用程序为true。对IIS进行这两步设置,应该就够了。
如果仍然不能导出成功,你就该考虑第三种情况了:你在客户端可能将文件导出到了服务器。解决方案也比较简单,换一种思路呗。大家可以参考下面这篇文章,里面有各种导出Excel的方案:
http://www.cnblogs.com/qixuejia/archive/2010/01/30/1659627.html
这里再次导出的时候,由于会有服务器到客户端的数据传输,还会遇到显示格式的问题,我这里就不做详细说明了,提供给大家一个链接,如果遇到此问题的话,可以做个参考:
http://blog.csdn.net/zengxin2008/article/details/6367869
另外,如果你想给导出的Excel文件起个中文名字,您还会遇到编码解码问题,这个就不提供链接了,网上关于编码的问题多的是,大家自己看着解决吧。
本文主要分析了导出Excel的各种原因,以及给出了简要的解决思路。如果大家还有跟好的解决方法,欢迎指正。
相关文章推荐
- win7 64位系统web项目导出excel问题分析及解决方法汇总
- 64位系统web项目导出excel问题分析及解决方法汇总
- ubuntu上安装虚拟win7后没有声音、没有网络;且不能选择安装64位虚拟系统的问题
- win7 64位Jboss 6.2.0.GA热部署web项目
- 关于Qt 5-MSVC 2015 64位在 win7 64位系统debug程序崩溃的问题
- Web页面的数据导出excel时的格式问题 【转】
- 解决在win7 64位系统下无线网卡改不了MAC地址的问题
- eclipse出现web项目导出war时没有jsp等文件的问题
- web.py+html+mysql实现web端小系统的问题汇总
- Web页面的数据导出excel时的格式问题(转)
- 导出Excel方式汇总-- 第三种 利用 Npoi 插件,只需要在项目里引用DLL即可,无需在服务器安装任何插件。
- win7 32/64位 下安装 Microsoft Web Application Stress Tool 增加了64位系统方法
- J2EE项目系列(四)--SSM框架构建积分系统和基本商品检索系统(Spring+SpringMVC+MyBatis)(3)Ajax使用详解(级联列表)以及企业级报表Excel导入导出实现
- 文件、导出-在Mac系统下Excel转csv文件中文乱码问题解决-by小雨
- win7 64位下如何安装配置mysql + 系统找不到指定的文件问题
- 终于解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01
- wireshare 在win7 64位系统安装出现的问题
- Web导出excel的问题
- WIN7 64位系统下解决eclipse中java语言中中文字体很小的问题
- Web项目 编码问题汇总 (各种乱码)