QingHuaiBuShuai 2022-03-24 13:54 采纳率: 65.7%
浏览 81
已结题

java按模板导出excel,遍历结果给单元格赋值会三层for嵌套如何避免

问题遇到的现象和发生背景
如何遍历list<map>里的数据赋值给单元格
问题相关代码,请勿粘贴截图
  List<Map<String, Object>> resultList = Service.selectInfoList(dataParams);
            XSSFWorkbook workBook = null;
            FileInputStream fis = null;
            OutputStream ouputStream = null;
            String classPath = this.getClass().getResource("/").getFile().toString();
            String srcFilePath = classPath + "/file/模板.xlsx"; //模板
            //创建Excel文件的输入流对象
            fis = new FileInputStream(srcFilePath);
            //根据模板创建excel工作簿
            workBook = new XSSFWorkbook(fis);
            //获取创建的工作簿第一页
            XSSFSheet sheet = workBook.getSheetAt(0);
            //给指定的sheet命名
            workBook.setSheetName(0, "管理人员");
            CellStyle style = workBook.createCellStyle();  //单元格样式设置
            style.setBorderRight(BorderStyle.THIN);
            style.setBorderLeft(BorderStyle.THIN);
            style.setBorderTop(BorderStyle.THIN);
            style.setBorderBottom(BorderStyle.THIN);
         for (int i = 2; i < resultList.size() + 2; i++) {
                XSSFRow row = sheet.createRow(i);       //建行
                for (int j = 0; j < resultList.get(i).size(); j++) {
                    XSSFCell cell = row.createCell(j);          //建单元格
                    for (String key : resultList.get(i).keySet()) {
                        cell.setCellValue(nvl(resultList.get(i).get(key)));    //给单元格赋值
                    }
                }
            }
            response.setContentType("application/octet-stream; charset=utf-8");
            response.setHeader("Content-Disposition", "attachment; filename=" + Encodes.urlEncode("市公司本部四级管理人员.xlsx"));
            ouputStream = response.getOutputStream();
            workBook.write(ouputStream);
            //关闭流
            ouputStream.flush();
            ouputStream.close();
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 在自我救赎中成长 2022-03-24 14:50
    关注

    赋值还要循环赋值?建议先用list将每列的值装起来,再用这个list循环创建列并赋值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月19日
  • 已采纳回答 4月11日
  • 创建了问题 3月24日

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算