解决导出Excel报COM类工厂错误的办法
1、问题现象
(1)第一种:销售模板的一些报表(如日报、月报等)导出时提示如下信息
(2)第二种:有些模块的一些报表导出时,没有反应,前后台也没报错
如成本管理----动态成本菜单下的报表导出就没反应
2、原因分析
(1)代码问题,目前开发还没解决
(2)服务器配置的权限问题,一般是使用IIS 由于 NETWORK SERVICE 没有权限引起的。
而NETWORK SERVICE 隶属于 Users 这个用户组,所以也需要设置Users的权限。(补充:实际只需要授予everyone权限)
3、解决办法
第一种:临时解决方法
就是访问web页面的电脑,要远程到IIS站点所在的服务器上,再进行导出操作
第二种:IIS站点所在的服务器进行everyone授权,如下操作步骤
(1)进入组件服务
从管理工具进入 组件服务
64位系统有可能找不到Excel 在运行敲入comexp.msc -32 进入32位的组件服务去
(2)找到Microsoft Excel Application配置项
备注:有些服务器上有多个,比如 还有
Microsoft Excel 预览器,或其它的,只要包含 Microsoft Excel 的组件 都需要同样配置。
另外,Microsoft Word 的 ,也需要同样配置(如果用到了 WORD 控件,比如 售楼的套打)。
(3)如上图所示,选中 Excel 右键 属性
(4)切换到【安全】选项卡 对上面三个都分别设置权限
启动和激活的权限 》 自定义 》 给 NETWORK SERVICE 与 Users 添加权限
(5)重要补充:三个编辑页面里的【组或用户名】都添加上everyone、administrator用户,然后和上面一样,都添加权限。如下图
(6)最后切换标签页 到标识下面 启动用户选择 交互式用户。
(7)重要补充:如果上面选择交互式用户,还不能正常导出,此时按下图方式进行配置,设置好登陆服务器的账号和密码,再进行尝试导出,如果还不行,就去web.config里增加权限,具体加什么内容到时再咨询解决过问题的实施同事。
4、Word解决办法
补充说明: 正文、套打 也经常会有类似的权限问题,请找到组件里的Microsoft Word 97 - 2003 文档一样做上述操作即可。
如果还是不行的话,那么,就在web.config中使用身份模拟,在<system.web>节中加入 <identity impersonate="true" userName="你的用户名" password="密码"/>
另外补充一种疑难杂症
未在本地计算机上注册microsoft.ace.12.0
解决方案:
1.配置应用池32位应用程序,如图
2.若还依旧在报错,检查连接数据库地址处修改为:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"
目前遇到的更改此处即可,若还有问题,参考以下连接了解下尝试解决。
https://jingyan.baidu.com/article/ab69b2707203f32ca7189f95.html