• EasyExcel导入导出,处理数据


     1.导出模块,导出中有中文文件名称,设置格式

    1. /**
    2. * 以流方式响应回给客户端,返回值类型设置成void
    3. *
    4. * @param response 输出excel表格,让用户下载
    5. */
    6. @PostMapping("/exportExcel")
    7. public void exportExcel(ZqRewardProjectContract zqRewardProjectContract,HttpServletResponse response){
    8. try {
    9. // 设置内容格式 以及 编码方式(文件指定可以修改)
    10. // response.setContentType("application/vnd.ms-excel");
    11. response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    12. response.setCharacterEncoding("utf-8");
    13. //attachment指定独立文件下载 不指定则回浏览器中直接打开
    14. // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
    15. String fileName = URLEncoder.encode("数据", "UTF-8").replaceAll("\\+", "%20");
    16. response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
    17. // response.setHeader("Content-Disposition","attachment;filename="+new String("数据.xlsx".getBytes(),"UTF-8"));
    18. //输出文件流 调用服务层方法,获取excel对象放入输出流
    19. Page page = getPage();
    20. List list = zqRewardProjectContractService.findAll(page, zqRewardProjectContract);
    21. //导出excel
    22. EasyExcel.write(response.getOutputStream(), ZqRewardProjectContract.class).sheet(0).doWrite(list);
    23. } catch (Exception e) {
    24. e.printStackTrace();
    25. }
    26. }

    2.导入,直接导入和异步导入(可以处理重复和设置参数)

    1. /**
    2. * ajax文件上传,前端传递的文件对象为file
    3. *
    4. * @param file 前端上传的excel文件
    5. * @return
    6. */
    7. @PostMapping("/importExcel")
    8. public String importExcel(MultipartFile file){
    9. //从解析器中获取excel文件流,传入到服务层进行读取处理
    10. try {
    11. EasyExcel.read(file.getInputStream(),ZqRewardProjectContract.class,new EasyExcelListener(zqRewardProjectContractService) ).sheet("表").doRead();
    12. } catch (Exception e) {
    13. e.printStackTrace();
    14. return "导入失败";
    15. }
    16. return "导入成功";
    17. }
    18. /**
    19. * ajax文件上传,前端传递的文件对象为file
    20. *
    21. * @param file 前端上传的excel文件
    22. * @return
    23. */
    24. @PostMapping("/importExcel2")
    25. public String importExcel2(MultipartFile file){
    26. //从解析器中获取excel文件流,传入到服务层进行读取处理
    27. try {
    28. // EasyExcel.read(file.getInputStream(),ZqRewardProjectContract.class,new EasyExcelListener(zqRewardProjectContractService) ).sheet("表").doRead();
    29. List list = EasyExcel.read(file.getInputStream(),ZqRewardProjectContract.class,new EasyExcelListener(zqRewardProjectContractService) ).sheet("表").doReadSync();
    30. //处理数据
    31. for (int i = 0,n = list.size(); i < n; i++) {
    32. list.get(i).set区域("县市");
    33. }
    34. zqRewardProjectContractService.saveOrUpdateBatch(list);
    35. } catch (Exception e) {
    36. e.printStackTrace();
    37. return "导入失败";
    38. }
    39. return "导入成功";
    40. }

    3.多sheet导出

     4.输出多个sheet,自定义表头 这里部分代码

     

  • 相关阅读:
    《web课程设计》 基于HTML+CSS+JavaScript实现中国水墨风的小学学校网站模板(6个网页)
    路由器基础(十二):IPSEC VPN配置
    工程(十三)——基于激光视觉的SLAM三维重建
    【计算方法与科学建模】矩阵特征值与特征向量的计算(二):Jacobi 过关法及其Python实现(Jacobi 旋转法的改进)
    Nginx常用模块
    vue生命周期
    汪子熙趣味接龙游戏实现的参考资源
    TCP是什么、UDP是什么,它们有什么区别
    mac idea 常用快捷键
    一同走进Linux的“基操”世界
  • 原文地址:https://blog.csdn.net/u010883006/article/details/127683297