基于Springboot 的 Excel表格的导入导出

首先 ,引入相关依赖EasyPOI

        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-spring-boot-starter</artifactId>
            <version>4.4.0</version>
        </dependency>

编写实体类: 

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    @Excel(name = "用户编号",width = 10,orderNum = "0")
    private Integer id;
    @Excel(name = "用户名",width = 10,orderNum = "1")
    private String username;
    @ExcelIgnore()
    private String password;
    @Excel(name = "邮件",width = 20,orderNum = "2")
    private String email;
    @Excel(name = "年龄",width = 10,orderNum = "3")
    private Integer age;
    @Excel(name = "手机号",width = 20,orderNum = "4")
    private String phone;
    private Integer isDeleted;
}

 编写控制类UserController:

@RestController
public class UserController {
    @SneakyThrows
    @GetMapping("export")
    public void exportExcel(HttpServletResponse response){
        List<User> list = new ArrayList<>();
        list.add(new User(1,"zhangsan","aaa","28181@163.com",18,"13256564454",1));
        list.add(new User(2,"lisi","aaa","28181@163.com",28,"18456234454",0));
        list.add(new User(3,"Wangwu","aaa","28181@163.com",38,"18423564454",1));
        list.add(new User(4,"mazi","aaa","28181@163.com",15,"18456564454",1));

        // 传入表头和表名
        ExportParams exportParams = new ExportParams("员工信息表","员工表");
        Workbook sheets = ExcelExportUtil.exportExcel(exportParams,User.class,list);

        //设置响应输出的类型为excel
        response.setContentType("application/vnd.ms-excel");
        //设置相应的文件名

        String filename = UUID.randomUUID() + ".xlsx";
        response.setHeader("Content-disposition","attachment;filename="+ new String(filename.getBytes("utf-8"),"iso8859-1"));

        sheets.write(response.getOutputStream());
    }
}

实现导出元素:

现在进行导入操作:

    @SneakyThrows
    @PostMapping("import")
    public AjaxResult importExcel(@RequestParam(value = "file") MultipartFile file){
        ImportParams params = new ImportParams();
        params.setTitleRows(1);// 标题行数
        params.setHeadRows(1); // 列名行数

        List<User> list = ExcelImportUtil.importExcel(file.getInputStream(), User.class, params);

        list.forEach(System.out::println);
        return success();
    }

使用postman进行导入测试:

导入的表格元素入下所示: 

 

控制台打印结果: 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值