java导出数据为Excel的具体分析和例子

前端页面中的参数:

导出excel表中的数据:

var getExcel = function () {

        var data = {

            'telPhone': $("#telPhone").val(),

            'companyName': $("#companyName").val(),

            'merchantName': $("#merchantName").val(),

            'status': $("#status").val(),

            'isFrozen': $("#isFrozen").val(),

            'merchantFirstTypeId': $("select[name='merchantFirstTypeId']").val(),

            'merchantSecondTypeId': $("select[name='merchantSecondTypeId']").val(),

            'positionExtendsId': getPositionVal(),

            'agentId': agentId

        };

        exportExcel("ajaxSubmit", "/web/merchants/getExport", data);

    };

java代码中的参数逻辑:controller

// 获取当前登录用户

SessionUserVO userBean = getLoginUser();

//记录日志

Result result = addSysLog(userBean,SystemOperateEnum.IMPORT_EXPORT.getType(),"商户导出");

//登录权限判断

//是否为管理员

if(Objects.equals(userBean.getSessionRoleVo().get(0).getRoleCode(), RoleEnum.ADMIN.getCode())){

//是否为代理商

}else if(Objects.equals(userBean.getSessionRoleVo().get(0).getRoleCode(), RoleEnum.CITY_AGENT.getCode()) || Objects.equals(userBean.getSessionRoleVo().get(0).getRoleCode(), RoleEnum.COUNTY_AGENT.getCode()) || Objects.equals(userBean.getSessionRoleVo().get(0).getRoleCode(), RoleEnum.COMMUNITY_AGENT.getCode())){

AgentDTO agentDTO = new AgentDTO();

agentDTO.setUserId(userBean.getId());

//查找当前级及下级代理商

List<AgentVO> agentList = iAgentService.getPositionGetNextAgentList(agentDTO);

if(agentList!=null && agentList.size()>0){

List<Long> ids = new ArrayList<Long>();

for(AgentVO vo:agentList){

ids.add(vo.getId());

}

merchantDTO.setAgentIds(ids);

}

}

merchantDTO.setIsDelete(merchantIsDelete.ZERO.getIndex());

List<MerchantVO> list = new ArrayList<MerchantVO>();

//判断日志是否已经记录

if(result.isSuccess()){

list = iMerchantService.getMerchantList(merchantDTO);

}

        if(list != null && list.size()>0){//处理状态码

        for(MerchantVO vo:list){

       if (vo.getStatus() == agentStatus.ZERO.getIndex()) {

               if(vo.getStatusLevel() == agentLevel.CITY_AGENT.getIndex()){

               vo.setStatusName(""+agentLevel.CITY_AGENT.getName()+""+agentStatus.ZERO.getName());

               }else if(vo.getStatusLevel() == agentLevel.COUNTY_AGENT.getIndex()){

               vo.setStatusName(""+agentLevel.COUNTY_AGENT.getName()+""+agentStatus.ZERO.getName());

               }else if(vo.getStatusLevel() == agentLevel.ADMIN.getIndex()){

               vo.setStatusName(""+agentLevel.ADMIN.getName()+""+agentStatus.ZERO.getName());

               }

              } else if (vo.getStatus() == agentStatus.ONE.getIndex()) {

                  if(vo.getStatusLevel() == agentLevel.CITY_AGENT.getIndex()){

               vo.setStatusName(""+agentLevel.CITY_AGENT.getName()+""+agentStatus.ONE.getName());

               }else if(vo.getStatusLevel() == agentLevel.COUNTY_AGENT.getIndex()){

               vo.setStatusName(""+agentLevel.COUNTY_AGENT.getName()+""+agentStatus.ONE.getName());

               }else if(vo.getStatusLevel() == agentLevel.ADMIN.getIndex()){

               vo.setStatusName(""+agentLevel.ADMIN.getName()+""+agentStatus.ONE.getName());

               }

              } else if (vo.getStatus() == agentStatus.TWO.getIndex()) {

               if(vo.getStatusLevel() == agentLevel.CITY_AGENT.getIndex()){

                vo.setStatusName(""+agentLevel.CITY_AGENT.getName()+""+agentStatus.TWO.getName());

                }else if(vo.getStatusLevel() == agentLevel.COUNTY_AGENT.getIndex()){

                vo.setStatusName(""+agentLevel.COUNTY_AGENT.getName()+""+agentStatus.TWO.getName());

                }else if(vo.getStatusLevel() == agentLevel.ADMIN.getIndex()){

                vo.setStatusName(""+agentLevel.ADMIN.getName()+""+agentStatus.TWO.getName());

                }

              }

        if(vo.getIsFrozen() == merchantIsFrozen.ZERO.getIndex()){

        vo.setIsFrozenName(merchantIsFrozen.ZERO.getName());

        }else if(vo.getIsFrozen() == merchantIsFrozen.ONE.getIndex()){

        vo.setIsFrozenName(merchantIsFrozen.ONE.getName());

        }

        }

        }

        

        Map<String,String> headMap = new LinkedHashMap<String,String>();

        headMap.put("parentName","上级代理");

        headMap.put("companyName","企业名称");

        headMap.put("merchantName","门店名称");

        headMap.put("telPhone","商户账号");

        headMap.put("merchantTypeName","行业分类");

        headMap.put("positionName","所属区域");

        headMap.put("statusName","审核状态");

        headMap.put("isFrozenName","冻结状态");

        String title = "商户导出";

        GenerateXSSFExcel excel = new GenerateXSSFExcel();

        excel.downloadExcelFile(title, headMap, list, response);

    }

Java代码中参数逻辑Service

 public void downloadExcelFile(String title,Map<String,String> headMap,List list,HttpServletResponse response){

        try {

         GenerateXSSFExcel g = new GenerateXSSFExcel();

            ByteArrayOutputStream os = new ByteArrayOutputStream();

            SheetBean sb = new SheetBean();//表格

         sb.setIndex(0);//工作表几个

    sb.setName(title);//每个工作表的命名

    List<RowBean> rowList = new ArrayList<RowBean>();//行定义

    List<HashMap> listMap = JSONObject.parseArray(JSONObject.toJSONString(list),HashMap.class);

    RowBean rowBean = new RowBean();//行实例化

     List<CellBean> cellList = new  ArrayList<CellBean>();//列数据

     if(headMap!=null && listMap!=null){

    for(Entry<String, String> vo : headMap.entrySet()){ //标题

    CellBean cellBean = new CellBean();//列数据

        cellBean.setValue(vo.getValue());//给当前设值

    cellList.add(cellBean);//一列多少数据

       }

    rowBean.setCellList(cellList);//把列装进行

    rowList.add(rowBean);//总共多少行

        for(HashMap<String,Object> map:listMap){//多少行

        rowBean = new RowBean();//行实例化

        cellList = new  ArrayList<CellBean>();//列数据

        for(Entry<String, String> vo : headMap.entrySet()){ //

        CellBean cellBean = new CellBean();//列数据

//         if(map.get(vo.getKey())

//         type = vo.getClass().getSimpleName();

        if(vo.getKey().toLowerCase().indexOf("time")>0){

        cellBean.setValue(dateToStamp(String.valueOf(map.get(vo.getKey()))));//给当前设值

        }else{

        cellBean.setValue(map.get(vo.getKey()));//给当前设值

        }

    cellList.add(cellBean);//一列多少数据

           }

        rowBean.setCellList(cellList);//把列装进行

        rowList.add(rowBean);//总共多少行

        }

         //写进excel

     g.processWorkSheet(sb, rowList,null);

     rowList.clear();

            g.write(os);

     }else{

    

     }

            byte[] content = os.toByteArray();

            InputStream is = new ByteArrayInputStream(content);

            // 设置response参数,可以打开下载页面

            response.reset();

            response.setContentType("application/vnd.ms-excel;charset=utf-8");

            response.setHeader("Content-Disposition", "attachment;filename="

                + new String((title + ".xlsx").getBytes(), "iso-8859-1"));

            ServletOutputStream out = response.getOutputStream();

            BufferedInputStream bis = null;

            BufferedOutputStream bos = null;

       

            try {

              bis = new BufferedInputStream(is);

              bos = new BufferedOutputStream(out);

              byte[] buff = new byte[100000];

              int bytesRead;

              // Simple read/write loop.

              while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {

                bos.write(buff, 0, bytesRead);

              }

            } catch (Exception e) {

             e.printStackTrace();

            } finally {

             if (bis != null)

               bis.close();

             if (bos != null)

               bos.close();

            }

        }catch (Exception e) {

            e.printStackTrace();

        }

    }

通过数据条件查询出来的

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值