SpringBoot + Vue导入导出excel表单

1、在配置好mybatis-plus的前提下

2、配置hutool工具

         <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.5</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

2、在service服务层编写方法

public List<User> importUser(MultipartFile file) throws Exception {
    InputStream inputStream = file.getInputStream();

    ExcelReader excelReader = ExcelUtil.getReader(inputStream);
//        指定User对象去接收它;
//        自定义列名标题
//        writer.addHeaderAlias("ID","id");
    excelReader.addHeaderAlias("用户名","name");
    excelReader.addHeaderAlias("密码","password");
    excelReader.addHeaderAlias("角色","role");
    excelReader.addHeaderAlias("创建时间","createTime");
//        一次性写出list内的对象到excel,使用默认样式强制输出标题
    System.out.println(inputStream+"_________________");
    List<User> users =excelReader.readAll(User.class);
//        List user1 = excelReader.readAll();
    System.out.println(users);
//        return userService.saveBatch(user);
    return users;
}
     public void export(HttpServletResponse response) throws Exception {
//        从数据库中查询出所有的数据
        List<User> list = list();
//        通过工具类创建writer 写出到磁盘路径
//        ExcelWriter writer = ExcelUtil.getWriter("d:/writeBeanTest.xlsx");
//        ExcelWriter writer = ExcelUtil.getWriter(fileUploadPath+ "/用户信息.xlsx");
//        内存操作写出到浏览器
        ExcelWriter writer = ExcelUtil.getWriter(true);
//        自定义列名标题
        writer.addHeaderAlias("id","ID");
        writer.addHeaderAlias("name","用户名");
        writer.addHeaderAlias("password","密码");
        writer.addHeaderAlias("role","角色");
        writer.addHeaderAlias("createTime","创建时间");
//        writer.addHeaderAlias("name","用户名");
//        一次性写出list内的对象到excel,使用默认样式强制输出标题
        writer.write(list,true);
//        设置浏览器响应的格式
        response.setContentType("application/vnd.ms-excel;charset=UTF-8");
        String fileName = URLEncoder.encode("用户信息","Utf8");
        response.setHeader("Content-Disposition","attachment;filename="+ fileName + ".xlsx");
        ServletOutputStream outputStream = response.getOutputStream();

        writer.flush(outputStream,true);
        outputStream.close();
        // 关闭writer,释放内存
        writer.close();
    }
}

3、controller控制层应用

//    导出接口
    @GetMapping("/export")
    public void export(HttpServletResponse response) throws Exception {
        userService.export(response);
    }
//    导入接口
    @PostMapping("/import")
    public Boolean importUser(MultipartFile file) throws Exception {
        InputStream inputStream = file.getInputStream();
        List<User> users = userService.importUser(file);
        return userService.saveBatch(users);
    }

4、Vue 前端按钮配置

<el-button type="primary" icon="el-icon-upload2" size="small" style="margin-left: 5px"
            @click="exp">导出
</el-button>
<el-upload action="http://localhost:9090/uer/importUser" style="display:inline-block">
     <el-button size="small" type="primary"  style="margin-left: 5px"  
                icon="el-icon-download">导入
    </el-button>
</el-upload>

5、配置导出点击后的方法

 exp(){
           window.open('http://localhost:9090/user/export');
        }

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值