• 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
  • 相关阅读:
    setup中使用 element-ui 的 Message弹框;setup中 间接使用 this的方法
    轻量级的在线团队协作工具
    SSM+校园社团平台 毕业设计-附源码251554
    黑马VUE3视频笔记
    吃瓜教程2|线性模型
    异步性能不如同步?通过压测讨论应该如何设置线程数
    HCIA-Access V2.5华为认证接入网络工程师学习笔记第六章
    MySQL学习系列(4)-每天学习10个知识
    13.Ansible.roles案例
    ASDIP Foundation简单的图形环境
  • 原文地址:https://blog.csdn.net/m0_50518517/article/details/127649500