• 【SpringBoot整合 Apache POI 完成复杂表头数据的导出】


    CSDN话题挑战赛第2期
    参赛话题:Java技术分享

    引言

    SpringBoot整合 Apache POI 完成复杂表头数据的导出

    为什么要使用这个技术?

    1,先来说说根据自己个人实际应用介绍这项技术的优缺点

    优点:

    1. 能在特定环境下根据实际业务需求定制化完成复杂表头数据的导出。
    2. 在则就是有个特别详细的官网,大部分的业务场景都可以在那官网上可以看到,有详细说明并且也有对应代码
    3. 该技术可以操作任何版本的Excel

    缺点:

    1. 当然缺点也很突出,前面在优点中提到过的是根据业务定制化开发,所以代码的复用率不高,
    2. 当然除此之外就是对Spring Boot的版本有严格要求,否则很有可能出现版本的不兼容,本人遇到过,那是个残酷修复查找过程!这里就不说了,总之要留心这个问题


    2,掌握该项技术,能快速完成任何场景下的复制表头的数据导出。
     

    技术案例,实战分享

    1. //第一行
    2. int rowNum = 0;
    3. HSSFRow row1 = sheet.createRow(rowNum++);
    4. row1.setHeight((short) 800);
    5. HSSFCell cell = row1.createCell(0);
    6. cell.setCellValue("****公司" + date + "销售日报表");
    7. //合并单元格
    8. sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 9));
    9. cell.setCellStyle(style);
    10. //第二行
    11. HSSFRow row2 = sheet.createRow(rowNum++);
    12. HSSFCell cell2 = row2.createCell(0);
    13. cell2.setCellValue("制表单位:");
    14. sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, 9));
    15. //第三行
    16. HSSFRow row3 = sheet.createRow(rowNum++);
    17. String[] cellFirst = {"矿别", "煤种", "最新价格(元/吨)", "数量(吨)", " ", "收入(元)", " ", "车数(车)", " ", "备注"};
    18. for (int i = 0; i < cellFirst.length; i++) {
    19. row3.setHeight((short) 450);
    20. HSSFCell cell3 = row3.createCell(i);
    21. cell3.setCellValue(cellFirst[i]);
    22. cell3.setCellStyle(style);
    23. }
    24. //矿别合并
    25. sheet.addMergedRegion(new CellRangeAddress(2, 3, 0, 0));
    26. //煤种合并
    27. sheet.addMergedRegion(new CellRangeAddress(2, 3, 1, 1));
    28. //最新价格(元/吨)合并
    29. sheet.addMergedRegion(new CellRangeAddress(2, 3, 2, 2));
    30. //数量(吨)合并
    31. sheet.addMergedRegion(new CellRangeAddress(2, 2, 3, 4));
    32. //收入(元)合并
    33. sheet.addMergedRegion(new CellRangeAddress(2, 2, 5, 6));
    34. //车数(车)合并
    35. sheet.addMergedRegion(new CellRangeAddress(2, 2, 7, 8));
    36. //备注合并
    37. sheet.addMergedRegion(new CellRangeAddress(2, 3, 9, 9));
    38. //第四行
    39. HSSFRow row4 = sheet.createRow(rowNum++);
    40. String[] cellFirst4 = {" ", " ", " ", "当日", "月累", "当日", "月累", "当日", "月累",};
    41. for (int i = 3; i < cellFirst4.length; i++) {
    42. row4.setHeight((short) 450);
    43. HSSFCell cell4 = row4.createCell(i);
    44. cell4.setCellValue(cellFirst4[i]);
    45. cell4.setCellStyle(style);
    46. }

    难点分析

    不同的业务需求难度各不相同,需要从不同的维度去统计数据,使用该技术将数据无错误的填入表格。

    技术小结

    学会这项技术,基本就没有难得复杂表格啦。

  • 相关阅读:
    基于SpringBoot+Netty实现即时通讯(IM)功能
    【计算机网络】网络基础(二)
    Java基础:Java程序设计概述
    处理查询结果集
    Web自动化测试(3)-Unittestreport
    Android 开发学习(四)
    OpenVINO--初步学习笔记
    集群搭建(1)
    Qt与MQTT交互通信
    通过热敏电阻计算温度(三)---Marlin实现分析
  • 原文地址:https://blog.csdn.net/ggjklncffd/article/details/126903810