我用location.href转到后台 导出excel,
但当查询出的数据不满足条件时,我不导出excel,不进行操作,页面就会变空白,
Long count = custMtTranService.getCountByParams(params);
if(count<=50000){
List<Tran> trans = custMtTranService.getCustMtTranByParams(params);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
List<String[]> headNames = new ArrayList<String[]>();
headNames.add(new String[] { "客户号", "客户名称","订单编号","MT4账户","交易品种","报价小数位数","开仓时间","开仓价格","交易量","止损价位","止盈价位",
"平仓时间","平仓价格","外佣","代理商佣金","盈利金额","订单备注"});
List<String[]> fieldNames = new ArrayList<String[]>();
fieldNames.add(new String[] { "custNo", "custName","orderId","login","symbol","digits","openTime","openPrice","volume","sl","tp",
"closeTime","closePrice","commission","commissionAgent","profit","comments"});
LinkedHashMap<String,List> map1=new LinkedHashMap<String,List>();
map1.put("交易数据", trans);
ExportSetInfo setInfo = new ExportSetInfo();
setInfo.setObjsMap(map1);
setInfo.setFieldNames(fieldNames);
setInfo.setTitles(new String[] { "交易信息" });
setInfo.setHeadNames(headNames);
setInfo.setOut(baos);
// 将需要导出的数据输出到baos
ExcelUtil.export2Excel(setInfo);
// 生成提示信息,
response.setContentType("application/vnd.ms-excel");
String codedFileName = null;
OutputStream fOut = null;
// 进行转码,使其支持中文文件名
codedFileName = java.net.URLEncoder.encode("交易信息", "UTF-8");
response.setHeader("content-disposition", "attachment;filename="
+ codedFileName + ".xls");
fOut = response.getOutputStream();
baos.writeTo(fOut);
fOut.flush();
fOut.close();
}else{
//数据过多,不能导出
}
方法有很多,我说一个。
1.在页面添加一个hide的标签,用于获取后台状态数据
2.后台成功就把标签值置1,失败置0
3.页面的
(或者是JQ的document.ready())中添加JS判断hide标签的值,如果是0就alert('数据过多不能导出')版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。