使用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();
    }
相关文章
|
前端开发 Java 数据库连接
导出文件:使用Hutool导出数据为Excel文件
导出文件:使用Hutool导出数据为Excel文件
1724 0
导出文件:使用Hutool导出数据为Excel文件
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
10099 1
|
Java
java8中List对象转另一个List对象
java8中List对象转另一个List对象
945 0
|
机器学习/深度学习 人工智能 Java
验证码破解全流程实战
验证码破解全流程实战
1486 0
验证码破解全流程实战
|
10月前
|
关系型数据库 中间件 Linux
毅硕HPC | Rocky Linux 9 SLURM软件编译安装
Slurm 是现代HPC集群不可或缺的核心中间件。通过本教程,您将学习如何在 Rocky Linux 9 系统上从源码编译并安装配置这一强大的调度系统,为构建您自己的高性能计算环境奠定坚实的基础。
600 3
|
存储 缓存 数据处理
Dify开通手册及0元免费试用活动
Dify开通手册及0元免费试用活动
1355 151
|
人工智能 数据可视化 测试技术
Apifox与Apipost对比,2025年功能对比与选项建议
Apifox 和 Apipost 作为国内 API 一体化协作平台的佼佼者,都在不断进化,力求为用户提供更全面的解决方案。本文将聚焦“2025 版”,基于两款工具截至 2024 年末至 2025 年中旬的预期功能和行业发展趋势,进行一次全方位、深度的功能对比,旨在为开发者、测试工程师、产品经理及技术决策者在选型时提供有价值的参考。
3518 123
|
Oracle Java Linux
JDK
JDK
5658 0
|
druid Java 数据库连接
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
3505 0
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
|
关系型数据库 MySQL Linux
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
在Linux系统中使用tar.xz压缩包安装MySQL数据库的详细步骤。包括下载MySQL压缩包,解压到指定目录,创建mysql用户和组,设置目录权限,初始化MySQL,配置my.cnf文件,启动服务,以及修改root用户密码。此外,还提供了如何设置Windows远程登录MySQL服务器的方法。
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】

热门文章

最新文章