使用hutool完成excle文件导入导出

简介: 使用hutool完成excle文件导入导出

前提导入相关依赖



<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>4.1.2</version>
        </dependency>


1.这里用的springboot,先创建相关的表随意填写信息,如下



image.png


2.创建相应pojo,和查询的service



3.导入代码



@PostMapping("/import")
    @ResponseBody
    public void importExcel(MultipartFile file) throws IOException {
        //1.第一种 头必须和实体(英文)一样
        //文件处理成io流
        InputStream in = file.getInputStream();
//        //io流给ExcelReader
        ExcelReader excelReader=ExcelUtil.getReader(in);
//        //读取数据且转化为list
//        List<User> list = excelReader.readAll(User.class);
        //2.第二种导入方式
        //忽略第一行头(第一行是中文的情况),直接读取表的内容
        List<List<Object>> list = excelReader.read(1);
       // List<User> listUser = CollUtil.newArrayList();
        ArrayList<User> listUser = new ArrayList<>();
        for (List<Object> row: list) {
            User user=new User();
            user.setId(Integer.parseInt(row.get(0).toString()));
            user.setName(row.get(1).toString());
            user.setPwd(row.get(2).toString());
            listUser.add(user);
//            ****类似一一对应****
        }
        //批量注册进数据库
        System.out.println(listUser.toString());
    }


4.导出代码



//表格导出接口
    @GetMapping("/export")
    public void export(HttpServletResponse response) throws IOException {
        //查询所有用户
        List<User> list= userService.selectAll();;
        //在内存操作,写到浏览器
        ExcelWriter writer= ExcelUtil.getWriter(true);
        //自定义标题别名
        writer.addHeaderAlias("id","ID");
        writer.addHeaderAlias("name","用户名");
        writer.addHeaderAlias("pwd","密码");
        //默认配置
        writer.write(list,true);
        //设置content—type
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset:utf-8");
        //设置标题
        String fileName= URLEncoder.encode("用户信息","UTF-8");
        //Content-disposition是MIME协议的扩展,MIME协议指示MIME用户代理如何显示附加的文件。
        response.setHeader("Content-Disposition","attachment;filename="+fileName+".xlsx");
        ServletOutputStream outputStream= response.getOutputStream();
        //将Writer刷新到OutPut
        writer.flush(outputStream,true);
        outputStream.close();
        writer.close();
    }
相关文章
|
7月前
|
Java BI API
Java如何实现文件批量导入导出(兼容xls,xlsx)
Java如何实现文件批量导入导出(兼容xls,xlsx)
236 0
|
7月前
|
easyexcel Java 测试技术
用 EasyExcel 实现 Excel 的导入导出
用 EasyExcel 实现 Excel 的导入导出
374 0
|
存储 前端开发
优雅的实现 Excel 导入导出
优雅的实现 Excel 导入导出
318 0
优雅的实现 Excel 导入导出
|
easyexcel Java Maven
使用EasyExcel实现CSV文件读写功能,
使用EasyExcel实现CSV文件读写功能,顺手使用Idea创建SpringBoot工程集成swagger3
2174 0
使用EasyExcel实现CSV文件读写功能,
|
前端开发 Java 数据库连接
导出文件:使用Hutool导出数据为Excel文件
导出文件:使用Hutool导出数据为Excel文件
1120 0
导出文件:使用Hutool导出数据为Excel文件
|
XML easyexcel Java
EasyExcel实现对excel文件读写
EasyExcel是阿里巴巴开源的一个excel处理框架,**以使用简单、节省内存著称**。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
1411 1
EasyExcel实现对excel文件读写
|
前端开发 easyexcel Java
Java+EasyExcel实现文件导入导出,导入导出如此简单
项目中需要Excel文件的导入与导出Excel并下载,例如,导入员工信息,导出员工信息,手动输入比较繁琐,所以本篇博文教大家如何在Java中导入Excel文件与导出Excel文件
11326 2
Java+EasyExcel实现文件导入导出,导入导出如此简单
|
6月前
|
Java easyexcel
java开发excel导入导出工具类基于EasyExcel
java开发excel导入导出工具类基于EasyExcel
329 1
|
7月前
|
数据库
关于用NPOI导入Excel
关于用NPOI导入Excel
Excel工具-HUTOOL-读取Excel
Excel工具-HUTOOL-读取Excel