• poi多sheet,模板导出数据


    1. /**
    2. * 导出Excel
    3. * @param response 响应对象
    4. * @param headName 表头
    5. * @param List 数据
    6. */
    7. public static void exportExcel(HttpServletResponse response, String headName, List<数据对象> list) throws IOException {
    8. //读取模板
    9. Resource resource=new ClassPathResource("file/模板.xlsx");
    10. Workbook workbook=new XSSFWorkbook(resource.getInputStream());
    11. //设置数据剧中
    12. CellStyle cellStyle = workbook.createCellStyle();
    13. cellStyle.setAlignment(HorizontalAlignment.CENTER);
    14. cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
    15. //获得 sheet
    16. Sheet sheet= workbook.getSheetAt(0);
    17. //获得第一行 设置表头内容
    18. Row headRow = sheet.getRow(0);
    19. Cell headRowCell = headRow.getCell(0);
    20. headRowCell.setCellValue(headName);
    21. //从第表格第三行开始写入数据,根据模板设置index开始的值
    22. int index=2;
    23. Cell cell=null;
    24. for (XXX xxx : list) {
    25. //创建行
    26. Row rowData = sheet.createRow(index++);
    27. /创建cell 写入值
    28. cell=rowData.createCell(0);
    29. cell.setCellStyle(cellStyle);
    30. cell.setCellValue(xxx.getXXX());
    31. cell=rowData.createCell(1);
    32. cell.setCellStyle(cellStyle);
    33. cell.setCellValue(xxx.getXXX());
    34. ...
    35. }
    36. //如果是多数据源 导出 多个sheet
    37. //获得 第二个 sheet
    38. Sheet sheet2= workbook.getSheetAt(1);
    39. //此处写法不一样
    40. String fileName = URLEncoder.encode("表格名称", "utf-8");
    41. response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    42. response.setCharacterEncoding("utf-8");
    43. fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
    44. response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
    45. workbook.write(response.getOutputStream());
    46. //String fileName = URLEncoder.encode("表格名称.xlsx", "utf-8");
    47. //response.setHeader("content-type", "application/octet-stream;charset=utf-8");
    48. //response.setHeader("content-disposition", "attachment; ");
    49. //response.setHeader("filename",fileName);
    50. //workbook.write(response.getOutputStream());
    51. }

  • 相关阅读:
    渗透测试中的前端调试(上)
    labelme-5.0.1版本编辑多边形闪退
    链路聚合_Eth-trunk
    基于传统Session的登录
    华为OD机考算法题:字符串化繁为简
    Linux ❀ 磁盘IO较大故障告警排查确认方法
    定制Centos7.9镜像
    太绝了,撸了谷歌技术官写的Spring源码笔记后,感觉之前都白读了
    Python编程陷阱(四)
    编程每日一练(多语言实现)基础篇:求100~200之间的素数
  • 原文地址:https://blog.csdn.net/jah5201/article/details/134293881