java操作excel

1:导入依赖

1
2
3
4
5
6
7
8
9
10
11
<dependency>
       <groupId>cn.hutool</groupId>
       <artifactId>hutool-all</artifactId>
       <version>5.8.5</version>
   </dependency>
 
   <dependency>
       <groupId>org.apache.poi</groupId>
       <artifactId>poi-ooxml</artifactId>
       <version>5.0.0</version>
   </dependency>

  

2:创建实体,mapper,service

 

3:编写导出excel代码

writer.addHeaderAlias("name","名字");根据自己实体进行设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@GetMapping("/downE")
    public void downExcel(HttpServletResponse response) throws IOException{
        ArrayList<Myself> myselves = CollUtil.newArrayList(myselfServe.list());
        ExcelWriter writer = ExcelUtil.getWriter(true);
        writer.addHeaderAlias("name","名字");
        writer.addHeaderAlias("age","年龄");
        writer.addHeaderAlias("price","身价");
        writer.setOnlyAlias(true);
        writer.write(myselves,true);
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        response.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode("用户.xlsx","UTF-8"));
        ServletOutputStream out=response.getOutputStream();
        writer.flush(out,true);
        writer.close();
        IoUtil.close(out);
    }

 

 4:前端代码导出

(1)下载方式一:location.href = "后端接口";window.open("后端接口")

可以实现下载,本人测试,点击后可能短时间没反应,可能是网络电脑问题,过一段时间,几秒后下载完成

 

 

downE() {
      location.href = "http://localhost:9090/hutool/downE";
      // window.open();
    },

 

5:excel导入数据到数据库

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@PostMapping("/readE")
    public List<Myself> readExcel(@RequestParam("file") MultipartFile file) {
        redisUtil.del("data");
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();
        } catch (IOException e) {
            e.printStackTrace();
        }
        ExcelReader reader = ExcelUtil.getReader(inputStream);
        reader.addHeaderAlias("名字","name");
        reader.addHeaderAlias("年龄","age");
        reader.addHeaderAlias("身价","price");
        List<Myself> myselves = reader.readAll(Myself.class);
        for (Myself myself : myselves) {
            myselfServe.save(myself);
        }
        reader.close();
        return myselfServe.list();
    }

  

 

 

 

 

导入后

 

posted @   あかざ  阅读(246)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示