• 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. }

  • 相关阅读:
    利用Nginx正向代理实现局域网电脑访问外网
    2023/10/5 下午3:38:53 SCROLLINFO scrollInfo;
    ffmpeg 任意文件读取漏洞/SSRF漏洞 (CVE-2016-1897/CVE-2016-1898)
    普通交换机可以改成POE供电吗?
    Java数据结构—栈
    2021 RoboCom 世界机器人开发者大赛-本科组(初赛)
    Servlet入门接口、类和配置学习
    java基础10题
    分布式事务Seata
    (十三)admin-boot项目之redis注解实现接口限流
  • 原文地址:https://blog.csdn.net/jah5201/article/details/134293881