• java下载特定格式excel


        /**
         * 创建excel
         * 

    * 此方法为封装简单excel的导出 , * 表头或者日期等信息写在map , * list数据单独传可以实现简单导出 * * @param response 响应 * @param fileName 文件名称 * @param map map * @param list 列表 * @throws IOException ioexception */ public static void createExcel(HttpServletResponse response, String fileName, Map map, List list) throws IOException { ClassPathResource cpr = new ClassPathResource("file" + File.separator + fileName); OutputStream outputStream = response.getOutputStream(); response.setContentType(CONTENT_TYPE); response.setCharacterEncoding(CHARACTER_ENCODING); response.setHeader(HEADER_S1, HEADER_S2 + fileName); ExcelWriter excelWriter = EasyExcel.write(outputStream).autoTrim(false).withTemplate(cpr.getInputStream()).excelType(ExcelTypeEnum.XLS).build(); WriteSheet writeSheet = EasyExcel.writerSheet().build(); FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); map.put("a", ""); excelWriter.fill(map, writeSheet); excelWriter.fill(list, fillConfig, writeSheet); excelWriter.finish(); }

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    此方法需结合resource file路径下的文件实现指定导入字段
    事例:

     @Override
        public void downLoadInBound(EquipmentDetailDTO dto) {
            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            HttpServletResponse response = attributes.getResponse();
            // 入库单打印
            HashMap rkd = new HashMap<>();
            rkd.put("shopUnit", dto.getShopUnit());
            rkd.put("supplierName", dto.getSupplierIdManufacturerName());
            rkd.put("buyTime", DateUtil.nowDate());
            StringBuilder checkNo = new StringBuilder();
            List strings = Arrays.asList(dto.getCheckNo().split(","));
            if (Objects.nonNull(strings)) {
                checkNo.append(strings.get(0) + "-" + strings.get(strings.size() - 1));
            }
            rkd.put("checkNumber", checkNo.toString());
            rkd.put("applyDocumentNo", dto.getEquipmentCode());
            rkd.put("eqName", dto.getEquipmentName());
            rkd.put("brand", dto.getBrandName());
            rkd.put("modelSpecs", dto.getSpecs());
            rkd.put("productionArea", dto.getOriginPlace());
            rkd.put("manufacturerName", dto.getProductionInfoName());
            rkd.put("className", dto.getEquipmentType());
            rkd.put("unit", dto.getUnit());
            rkd.put("eqCount", dto.getEquipmentCount());
            rkd.put("actualAmount", dto.getTotalSettlementAmount().toString());
            rkd.put("purchaser", dto.getPurchaserName());
            rkd.put("userName", dto.getCreateNo());
            rkd.put("accounting", dto.getAccountingUserName());
            rkd.put("acceptor", dto.getCheckUserName());
            if (Objects.nonNull(dto.getObtain())) {
                dto.getObtain().forEach(item -> {
                    item.setMoneyType(solveMoneyType(item.getMoneyType()));
                    item.setMoneyAccount(item.getAmountNum().toString());
                });
                dto.getObtain().get(0).setArrivalDateString(DateUtil.nowDate());
                dto.getObtain().get(0).setRemark(dto.getRemark());
            }
            try {
                ExcelUtil.createExcel(response, "ckds.xls", rkd, new ArrayList<>());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
  • 相关阅读:
    leetcode:2259. 移除指定数字得到的最大结果
    Java 设计模式——抽象工厂模式
    [Linux]多线程编程
    GBase 8c维护审计日志(一)
    [深度学习]基于C++和onnxruntime部署yolov10的onnx模型
    牛客网刷题-(3)
    JAVA淘汰技术
    使用DIV、CSS技术设计的个人博客网页(web期末考试)
    elk+logback实现SpringBoot日志分布式收集
    基于JAVA旅游足迹记录系统计算机毕业设计源码+数据库+lw文档+系统+部署
  • 原文地址:https://blog.csdn.net/m0_50518517/article/details/127649500