java导出 /模版书写

111111111111111111111111111111

第一个方法:


@ApiOperation("导出")
@GetMapping("/export")
public void export(HttpServletResponse response,实体类 eDo) {
try {
//导出的文件名拼接
        String quarter = earningsCountDo.getYears() + ((earningsCountDo.getQuarter() != null && !"".equals(earningsCountDo.getQuarter())) ? ("第" + earningsCountDo.getQuarter() + "季度") : "") + "收益分析列表";
//文档里面的表头
//年和季度,表头,文件名
String quarter =这是表头;
List<List<String>> list = new ArrayList<List<String>>();//这是存放的字段名
List<String> fxindex = new ArrayList<String>();//这是存放表头
//…………………………
//………………//处理数据 把查出来的数据存放到各自对应的list里面
//导出
    response.setContentType("application/vnd.ms-excel");
    response.setCharacterEncoding("utf-8");
//文件名
    String fileName = URLEncoder.encode(quarter(这是表头 (删除)), "UTF-8").replace("\\+", "%20");//这是文件名
    response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");//fileName是文件名
EasyExcel.write(response.getOutputStream()).head(list).sheet(quarter).registerWriteHandler(new SimpleColumnWidthStyleStrategy(15)).doWrite(list1);
//list是字段名 quarter是表名  list1是数据
} catch (Exception e) {//异常处理
    response.reset();
    response.setContentType("application/json");
    response.setCharacterEncoding("utf-8");
try {
        response.getWriter().println(JSON.toJSONString(DtoResult.error("下载文件失败")));
    } catch (IOException e1) {
        e1.printStackTrace();
    }
}
}

带表格的

EasyExcel.write(response.getOutputStream()).head(list).sheet(quarter).registerWriteHandler(new SimpleColumnWidthStyleStrategy(15)).registerWriteHandler(cellBorder()).doWrite(list1);

查询出来:

22222222222222222

第二个方法:模版导出

模版位置:

controller层:

先查处导出信息,然后调用模版导出


@ApiOperation("导出")
@GetMapping(value = "/download")
public void download(HttpServletResponse response, ConstructionDrawingQuery criteria) throws IOException {
drawingService.download(drawingService.queryAllExcel(criteria), response);
}
//drawingService.queryAllExcel(criteria) 返回一个list的实体类数据

然后接口就不写出来了 直接写实现类


@Override
  public void download(List<ConstructionDrawingDto> dataList, HttpServletResponse response) throws IOException {
//首先封装excel数据用的list  用map来存放每条数据
    List<Map<String, Object>> list = new ArrayList<>();
    int xh = 0;//导出的序号
    for (ConstructionDrawingDto drawing : dataList) {
//声明用来封装数据的map 将每条数据用map存放 最后放到list中
      Map<String, Object> map2 = new LinkedMap();
      //放入数据
      map2.put("xh", ++xh);
      map2.put("companyName", drawing.getCompanyname());//单位
      map2.put("projectName", drawing.getProjectName());//项目名称
      map2.put("projectStatusName", drawing.getProjectStatusName());//项目状态
      map2.put("engineeringTypeName", drawing.getEngineeringTypeName());//工程类别
      map2.put("projectG", drawing.getProjectG());//项目承接模式
      map2.put("allContracts", drawing.getAllContracts());//合同额或工程结算造价(万元)
      map2.put("zszb", drawing.getZszb());//其中:自施合同额(万元)
      map2.put("projectSize", drawing.getProjectSize());//建筑面积(m2)
//      map2.put("承包范围", drawing.getPlanStartTime());
      map2.put("drawingDistributeDate", DateUtils.format(drawing.getDrawingDistributeDate(),DateUtils.FORMAT_SHORT));//图纸下发日期
      map2.put("isStage", drawing.getIsStage());//是否分阶段编制
      map2.put("planDate", DateUtils.format(drawing.getPlanDate(),DateUtils.FORMAT_SHORT));//计划完成日期
      map2.put("actualDate", DateUtils.format(drawing.getActualDate(),DateUtils.FORMAT_SHORT));//实际完成日期
      map2.put("reason", drawing.getReason());//未按时完成原因
      map2.put("amount", drawing.getAmount());//施工图预算金额
      map2.put("approveName", drawing.getCostSquareMeter());//平米造价
      map2.put("costSquareMeter", drawing.getCostSquareMeter());//是否报送业主
      map2.put("submitAmount", drawing.getSubmitAmount());//报送值(万元)
      map2.put("confirmAmount", drawing.getConfirmAmount());//业主确认值(万元)
      map2.put("disputeAmount", drawing.getDisputeAmount());//争议值(万元)
      map2.put("remark", drawing.getRemark());//备注
      map2.put("planDate", DateUtils.format(drawing.getPlanDate(),DateUtils.FORMAT_SHORT));//审批通过时间
      map2.put("appoveaDate", drawing.getApproveName());//审批状态
      list.add(map2);
    }


//调用工具类 普通模版导出 暂时不用
//    com.riching.cloud.common.utils.FileUtils.downloadExcel(list, response);
//新模版导出  将list里面的数据放入一个map中  
    Map<String, Object> map = new HashMap<>();
    String title;
    String name;
    TemplateExportParams tparams =   new TemplateExportParams("template/Cbt127_Construction_Drawing_Budget.xlsx");
    String[] sheetName = {"施工图"};//这个是模版存放的位置
//进行一些转换后最后导出
    tparams.setSheetName(sheetName);
    title = "施工图";
    name =title+".xls";
    map.put("list",list);
    String fileName = new String(name.getBytes("GB2312"), StandardCharsets.ISO_8859_1);
    response.setContentType("application/vnd.ms-excel");
    response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);
    Workbook workbook = ExcelExportUtil.exportExcel(tparams, map);
    OutputStream outStream = null;
    try {
      outStream = response.getOutputStream();
      workbook.write(outStream);
    } catch (IOException e) {
      e.printStackTrace();
    }finally {
      outStream.close();
    }
  }

上面放入map的也可以不一个一个拿出来 直接在list里面放入map就可以。   

一下子导出多个模版的

1、、查出来放在一个map里面

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值