中间件调用Excel打印问题
使用【医为客户端】程序调用Excel打印功能时,返回:处理请求异常:Automation服务器不能创建对象问题,是因为WPS安装是当前用户级别是安装,所以需要使用当前用户权限调用,而不能使用Administrator调用。处理办法如下:
一.查看当前打印电脑的【医为客户端】的版本
确保客户端的版本号为1.0.0.30或以上版本。
二.插件管理配置方法
进入iMedical – demo的头菜单找到【开发工具管理】界面,找到【插件管理Chrome】配置界面,找到CmdShell记录,为其增加CurrentUserEvalJs方法,如下图:

三.调用打印时修改
js代码中调用方法从EvalJs修改成CurrentUserEvalJs方法
//...
// CmdShell.EvalJs(excelStr)修改成下面方法
CmdShell.CurrentUserEvalJs(excelStr);

修改完成后,再测试打印或导出。
使用服务器模板导出无反应问题
问题说明:
使用中间件代码,导出Excel无反应
问题解决:
- demo – 配置管理 – 模板路径,如果是https开头,则要为每台客户端安装https证书,否则无反应
修改JS代码,使用JS来写打印的所有内容,不使用XLS模板导出
9.0以上中间件调用Excel打印没有反应
解释下,为啥之前的有的电脑不成功。ResultSetType: ExcelPlugin使用了插件。电脑必须安装Excel或者wps。同时受用户权限影响。有的时候,必须电脑管理员,才能运行成功。
1、需要改代码,改完后,不需要有excel或者wps也能导出
2、不改代码,需要去安装excel或者wsp就可以导出。异常的是电脑权限问题
改代码:
测试下来 grid2excel 导出Excel是支持的最好的。
导出页面的产品组修改:
csp引入
<script type="text/javascript" src="../scripts_lib/xlsx/grid2excel.js" charset="utf-8"></script>
js 代码:修改 hisui的datagride的id ‘#tDHCSSuserLogonLog’ filename: ‘用户登入日志汇总数据’ :
grid2excel($('#tDHCSSuserLogonLog'), {
IE11IsLowIE: false, filename: '用户登入日志汇总数据', allPage: true
, callback:
function (success, data) {
if (success) {
$.messager.popover({ msg: '导出成功 ', type: 'success' });
} else {
$.messager.popover({ msg: '导出失败 ', type: 'error' });
}
$.messager.progress('close');
}
});
其他问题比较记录:
* 多页数据,默认只导出了,查询的第一页。少了其他页数的数据,问题解决记录:
发现还是只有一页,是产品组的datagride没有绑定query到options。
解决方法:cfg.customRows 使用这个参数,先执行他们的查询代码,再把数据当做入参送进来
grid2excel($('#tDHCSSuserLogonLog'), {
customRows:data
IE11IsLowIE: false,
filename: '用户登入日志汇总数据',
allPage: true....
})
- 看代码学的其他配置,datagride的columns里面配置的隐藏,不导出,如果配置noExport:true,也不导出。
if ((col.hidden && ! cfg.showHidden )|| !col.field||col.checkbox===true||col.noExport===true) {
continue;
}
- 如果想实现其他更灵活的代码,js生成excel:百度:xlsx.core.min.js文档
https://www.cnblogs.com/ajaemp/p/12880847.html