假期结束,遇到了一个数据导出无法生成Excel的问题反馈,询问当初的开发人员并没有获取到有价值的信息,尝试按照微软官方给出的解决办法也没有最终解决问题。
客户端的提示信息为“检索COM类工厂中CLSID为{00024500-0000-0000-0000-000000000046}的组件时失败。原因是出现以下错误:8000401a
分析原因是因为Excel导出时采用的是DCOM调用Excel的方式,而远程用户无法运行Excel导致的。
目前暂时的解决办法就是在服务器端保持管理员的登录状态,只要不注销客户端就可以正常访问。
但这种调用方式还有一个问题就是会在服务器端生成大量的Excel进程,导致服务器性能下降,所以在没有特别要求的情况下建议使用直接生成Excel文件的方式来把数据导出到Excel,可以写成一个通用的过程,需要的时候直接调用就好。