栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot文件上传下载

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot文件上传下载

1.创建一个Spring Boot项目(略)

下面直接上手代码展示

2.导入依赖


    cn.hutool
    hutool-all
    5.7.20


    org.apache.poi
    poi-ooxml
    4.1.2



    com.alibaba
    fastjson
    1.2.69


    org.apache.commons
    commons-lang3

Controller层
   
    @ApiOperation(value = "导出接口")
    @GetMapping("/export")
    public void export(HttpServletResponse response) throws Exception{
        warehouseStockService.export(response);
    }

    
    @ApiOperation(value = "导入接口")
    @PostMapping("/import")
    public Boolean importFile(MultipartFile file) throws Exception {
        return warehouseStockService.importFile(file);
    }
Service层
  
    @Override
    public void export(HttpServletResponse response) throws Exception {
        // 从数据库查询出所有的数据
        List list = warehouseStockModelMapper.listStock();
        // 通过工具类创建writer 写出到磁盘路径
        // ExcelWriter writer = ExcelUtil.getWriter(filesUploadPath + "/库存信息.xlsx");
        // 在内存操作,写出到浏览器
        ExcelWriter writer = ExcelUtil.getWriter(true);
        //自定义标题别名
        writer.addHeaderAlias("stockTime", "更新时间");
        writer.setColumnWidth(9, 20);

        writer.setDefaultRowHeight(18);
        // 合并单元格后的标题行,使用默认标题样式
        //writer.merge(8, "库存信息");
        // 一次性写出list内的对象到excel,使用默认样式,强制输出标题
        writer.write(list, true);

        // 设置浏览器响应的格式
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        String fileName = URLEncoder.encode("库存信息", "UTF-8");

        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(currentTime);
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + dateString + ".xlsx");

        ServletOutputStream out = response.getOutputStream();
        writer.flush(out, true);
        out.close();
        writer.close();
    }

    
    @Override
    public Boolean importFile(MultipartFile file) throws Exception{
        InputStream inputStream = file.getInputStream();
        ExcelReader reader = ExcelUtil.getReader(inputStream);
        // 方式1:(推荐) 通过 javabean的方式读取Excel内的对象,但是要求表头必须是英文,跟javabean的属性要对应起来
        // List list = reader.readAll(WarehouseStockModel.class);
        // 方式2:忽略表头的中文,直接读取表的内容
        List> list = reader.read(1);
        List warehouseStockModels = CollUtil.newArrayList();
        for (List row : list) {
            WarehouseStockModel warehouseStockModel = new WarehouseStockModel();
            warehouseStockModel.setStockDetailSeq(row.get(0).toString());
    
            Integer nums = Integer.valueOf(row.get(7).toString());
            warehouseStockModel.setStockCount(nums);
            warehouseStockModel.setStockDescr(row.get(8).toString());
            warehouseStockModel.setStockTime(new Date());
            warehouseStockModels.add(warehouseStockModel);
        }
        warehouseStockModelService.saveBatch(warehouseStockModels);
        for (WarehouseStockModel warehouseStockModel : warehouseStockModels) {
            System.out.println(warehouseStockModel);
        }
        return true;
    }


转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号