文件下载利用poi导出excel
来源:互联网 发布:专业 知乎 编辑:程序博客网 时间:2024/04/28 13:48
jsp
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-print" plain="true" onclick="downReslt()">下载</a>
js
//下载任务详情function downReslt(){$.ajax({ url:'/taskManager/queryFlagMap.html', type:"post", data:{'channelId':$('#resultChannelId').val()}, dataType:'json', success:function(data){ var obj = {flag :$('#d-flag').combobox('getValue'),deleted :$("#d-deleted").combobox('getValue'),taskId :$("#resultTaskId").val(),channelId :$("#resultChannelId").val()}; for(var i=0;i<data.length;i++){ obj[""+data[i].field] = $("#"+data[i].field).val(); } var url = '/taskManager/download.html?'; //格式化参数 param=$.param(obj); //拼接 url=url+param; $('#resultDownLoad').attr("action",url); $('#resultDownLoad').attr("method","post"); $('#resultDownLoad').submit(); } }); }
controller
@RequestMapping("/download") @ResponseBodypublic Result download(HttpServletResponse resp,HttpServletRequest request){try {log.info("对账结果导出开始"); // 根据查询条件及渠道Id获取对应表和结果数据 HSSFWorkbook wb = taskDataService.loadResults(request); //创建输出流 OutputStream op = resp.getOutputStream(); resp.setHeader("Content-Disposition", "attachment; filename=download.xls"); resp.setContentType("application/msexcel"); wb.write(op); op.flush(); //关闭流 op.close(); wb.close();} catch (IOException e) {log.error("对账结果导出异常:"+ e);return Result.error("对账结果导出异常");}log.info("对账结果导出完成");return Result.success("下载对账结果成功");} }
serivceImpl 实现方式1
public HSSFWorkbook loadResults(HttpServletRequest request) {//获取条件查询字段Integer taskId=Integer.valueOf( request.getParameter("taskId"));Integer channelId=Integer.valueOf(request.getParameter("channelId"));String flag=String.valueOf(request.getParameter("flag")).equals("3")?"":request.getParameter("flag");String deleted=String.valueOf(request.getParameter("deleted")).equals("2")?"":request.getParameter("deleted");ChannelEntity entity=channelService.selectById(DatasoureFlagEnum.DATA_R_CASH.getCode(),channelId);String schemaInfo=entity.getSchemaInfo();SchemaConfig config=JSON.parseObject(schemaInfo,SchemaConfig.class);String tableName=config.getTableName(); HSSFWorkbook wb = new HSSFWorkbook();try{StringBuffer selectSql=new StringBuffer("select * from " + tableName+ "_data where task_id=" + taskId);for(int i=0;i<config.getFields().size();i++){if(String.valueOf(config.getFields().get(i).getQueryFlag()).equals("1")){String fieldValue = request.getParameter(config.getFields().get(i).getColumn());if(StringUtils.isNotBlank(fieldValue)){selectSql.append(" and "+config.getFields().get(i).getColumn()+"='"+fieldValue+"'");}}}if(StringUtils.isNotBlank(flag))selectSql.append(" and flag="+flag);if(StringUtils.isNotBlank(deleted))selectSql.append(" and deleted="+deleted);selectSql.append(" order by request_id desc ");final HSSFSheet sheet = wb.createSheet("对账结果表");//创建表头信息HSSFRow row0 = sheet.createRow(0);row0.createCell(0).setCellValue("比对结果");row0.createCell(1).setCellValue("处理状态");final List<FieldInfo> fields = config.getFields();int cursor = 2;for(FieldInfo f : fields){if(f.getColumn().endsWith("_amount")){row0.createCell(cursor++).setCellValue(StringUtils.replace(f.getLabel(),"分", "元"));} else{row0.createCell(cursor++).setCellValue(f.getLabel());}}row0.createCell(cursor).setCellValue("结果ID");final AtomicInteger counter = new AtomicInteger(1);baseJdbcDao.queryObjects(new String(selectSql),new org.springframework.jdbc.core.RowMapper<Void>() {@Overridepublic Void mapRow(ResultSet rs, int rowNum) throws SQLException {HSSFRow row = sheet.createRow(counter.getAndIncrement());if(StringUtils.isNotEmpty(rs.getString("flag"))){if("0".equals(rs.getString("flag"))){row.createCell(0).setCellValue("后台失败记录");}else if("1".equals(rs.getString("flag"))){row.createCell(0).setCellValue("比对成功记录");}else if("2".equals(rs.getString("flag"))){row.createCell(0).setCellValue("网关失败记录");}}if(StringUtils.isNotEmpty(rs.getString("deleted"))){if("0".equals(rs.getString("deleted")))row.createCell(1).setCellValue("未处理");if("1".equals(rs.getString("deleted")))row.createCell(1).setCellValue("已处理");}int cursor = 2;for(FieldInfo f : fields){if(StringUtils.isNotEmpty(rs.getString(f.getColumn()))){//TODO if(f.getColumn().endsWith("_amount")){try {row.createCell(cursor).setCellValue(AmountUtils.changeF2Y(rs.getString(f.getColumn())));} catch (Exception e) {e.printStackTrace();}} else{row.createCell(cursor).setCellValue(rs.getString(f.getColumn()));}}cursor++;}if(StringUtils.isNotEmpty(rs.getString("request_id")))row.createCell(cursor).setCellValue(rs.getString("request_id"));return null;}});}catch(Exception e){logger.error("查询任务详情异常:"+ e);}return wb;}
serviceimpl 实现方式2
public HSSFWorkbook loadResult(TaskDataRequest request) {Integer channelId=request.getChannelId();Integer taskId=request.getTaskId();String userName=request.getUserName();String bankName=request.getBankName();String flag=request.getFlag();String deleted=request.getDeleted();ChannelEntity entity=channelService.selectById(DatasoureFlagEnum.DATA_R_CASH.getCode(),channelId);String schemaInfo=entity.getSchemaInfo();SchemaConfig config=JSON.parseObject(schemaInfo,SchemaConfig.class);String tableName=config.getTableName(); HSSFWorkbook wb = new HSSFWorkbook();try{StringBuffer selectSql=new StringBuffer("select * from " + tableName+ "_data where task_id=" + taskId);if(StringUtils.isNotBlank(userName))selectSql.append(" and user_name='"+userName+"'");if(StringUtils.isNotBlank(bankName))selectSql.append(" and bank_name='"+bankName+"'");if(StringUtils.isNotBlank(flag))selectSql.append(" and flag="+flag);if(StringUtils.isNotBlank(deleted))selectSql.append(" and deleted="+deleted);selectSql.append(" order by request_id desc ");final HSSFSheet sheet = wb.createSheet("对账结果表");//创建表头信息HSSFRow row0 = sheet.createRow(0);row0.createCell(0).setCellValue("比对结果");row0.createCell(1).setCellValue("处理状态");final List<FieldInfo> fields = config.getFields();int cursor = 2;for(FieldInfo f : fields){if(f.getColumn().endsWith("_amount")){row0.createCell(cursor++).setCellValue(StringUtils.replace(f.getLabel(),"分", "元"));} else{row0.createCell(cursor++).setCellValue(f.getLabel());}}///*row0.createCell(2).setCellValue("流水号");//row0.createCell(3).setCellValue("商户订单号");//row0.createCell(4).setCellValue("用户名称");//row0.createCell(5).setCellValue("支付金额(分)");//row0.createCell(6).setCellValue("渠道成本(分)");//row0.createCell(7).setCellValue("三方名称");//row0.createCell(8).setCellValue("银行名称");//row0.createCell(9).setCellValue("充值状态");//row0.createCell(10).setCellValue("支付状态");//row0.createCell(11).setCellValue("订单时间");*///row0.createCell(12).setCellValue("储蓄卡");//deprecatedrow0.createCell(cursor).setCellValue("结果ID");final AtomicInteger counter = new AtomicInteger(1);baseJdbcDao.queryObjects(new String(selectSql),new org.springframework.jdbc.core.RowMapper<Void>() {@Overridepublic Void mapRow(ResultSet rs, int rowNum) throws SQLException {HSSFRow row = sheet.createRow(counter.getAndIncrement());if(StringUtils.isNotEmpty(rs.getString("flag"))){if("0".equals(rs.getString("flag"))){row.createCell(0).setCellValue("后台失败记录");}else if("1".equals(rs.getString("flag"))){row.createCell(0).setCellValue("比对成功记录");}else if("2".equals(rs.getString("flag"))){row.createCell(0).setCellValue("网关失败记录");}}if(StringUtils.isNotEmpty(rs.getString("deleted"))){if("0".equals(rs.getString("deleted")))row.createCell(1).setCellValue("未处理");if("1".equals(rs.getString("deleted")))row.createCell(1).setCellValue("已处理");}int cursor = 2;for(FieldInfo f : fields){if(StringUtils.isNotEmpty(rs.getString(f.getColumn()))){//TODO if(f.getColumn().endsWith("_amount")){try {row.createCell(cursor).setCellValue(AmountUtils.changeF2Y(rs.getString(f.getColumn())));} catch (Exception e) {e.printStackTrace();}} else{row.createCell(cursor).setCellValue(rs.getString(f.getColumn()));}}cursor++;}///*if(StringUtils.isNotEmpty(rs.getString("biz_workflow_id")))//row.createCell(2).setCellValue(rs.getString("biz_workflow_id"));//if(StringUtils.isNotEmpty(rs.getString("merchant_no")))//row.createCell(3).setCellValue(rs.getString("merchant_no"));//if(StringUtils.isNotEmpty(rs.getString("user_name")))//row.createCell(4).setCellValue(rs.getString("user_name"));//if(StringUtils.isNotEmpty(rs.getString("pay_amount")))//row.createCell(5).setCellValue(rs.getString("pay_amount"));//if(StringUtils.isNotEmpty(rs.getString("fee_amount")))//row.createCell(6).setCellValue(rs.getString("fee_amount"));//if(StringUtils.isNotEmpty(rs.getString("third_name")))//row.createCell(7).setCellValue(rs.getString("third_name"));//if(StringUtils.isNotEmpty(rs.getString("bank_name")))//row.createCell(8).setCellValue(rs.getString("bank_name"));//if(StringUtils.isNotEmpty(rs.getString("charge_des")))//row.createCell(9).setCellValue(rs.getString("charge_des"));//if(StringUtils.isNotEmpty(rs.getString("pay_des")))//row.createCell(10).setCellValue(rs.getString("pay_des"));//if(StringUtils.isNotEmpty(rs.getString("order_time")))//row.createCell(11).setCellValue(rs.getString("order_time"));*///if(StringUtils.isNotEmpty(rs.getString("card_type")))//row.createCell(12).setCellValue(rs.getString("card_type"));if(StringUtils.isNotEmpty(rs.getString("request_id")))row.createCell(cursor).setCellValue(rs.getString("request_id"));return null;}});}catch(Exception e){logger.error("查询任务详情异常:"+ e);}return wb;}
阅读全文
0 0
- 文件下载利用poi导出excel
- 利用POI导入和导出excel文件
- struts2利用poi导出excel文件
- JAVA利用POI导出Excel模板文件
- Java利用POI实现导出excel文件
- 利用poi 导入导出excel文件
- java POI excel文件导出下载
- Spring Boot--POI导出excel文件下载
- 利用POI导出excel
- 利用Poi导出Excel
- 利用poi导出excel
- 利用POI导出EXCEL
- 利用POI导出excel
- POI导出Excel文件
- POI EXCEL 文件导出
- POI 导出excel文件
- POI导出Excel文件
- POI导出Excel文件
- 可随意移动子VIEW的布局文件
- 简单创建spring boot 项目。
- Unity5之Network基础用法之人物跑动同步
- Java的native方法
- LTE物理传输资源(3)-时频资源
- 文件下载利用poi导出excel
- 宿主机为win10,虚拟机为 win7系统下载及安装virtio-drivers网卡驱动, 以提高网
- matlabR2012a 永久激活文件 lic_standalone.dat 文件
- ProtocolBuffer Mac安装步骤
- c++socket通信的recv和send
- hibernate @Inheritance 继承
- pycharm-显示project选项
- 以太坊挖矿矿机组装指南
- 通过JAVA从高德地图URL连接获取json数据 解析并存入数据库的程序举例