springboot+easypoi初尝试

在日常开发中,经常会遇到要操作Excel的功能,本文尝试一种新的方式,easypoi实现Excel导入导出,让一个不懂导入导出的人也能快速使用POI完成Excel的各种操作。
maven依赖

<dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-spring-boot-starter</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

实体类

@Data
@EqualsAndHashCode(callSuper = false)
public class Member {

    @Excel(name = "ID", width = 10)
    private Long id;

    @Excel(name = "用户名", width = 20, needMerge = true)
    private String username;

    private String password;

    @Excel(name = "昵称", width = 20, needMerge = true)
    private String nickname;

    @Excel(name = "出生日期", width = 20, format = "yyyy-MM-dd")
    private Date birthday;

    @Excel(name = "手机号", width = 20, needMerge = true, desensitizationRule = "3_4")
    private String phone;

    private String icon;

    @Excel(name = "性别", width = 10, replace = {"男_0", "女_1"})
    private Integer gender;
}

导出

@RequestMapping(value = "/exportMemberList2", method = RequestMethod.GET)
    public void exportMemberList2(HttpServletRequest request, HttpServletResponse response) {
        List<Member> memberList = new ArrayList<>();
        Member member1 = new Member();
        member1.setId(11L);
        member1.setUsername("caocao");
        member1.setBirthday(new Date());
        member1.setGender(0);
        member1.setNickname("mengde");
        member1.setPhone("13912345678");
        Member member2 = new Member();
        member2.setId(12L);
        member2.setUsername("liubei");
        member2.setBirthday(new Date());
        member2.setGender(1);
        member2.setNickname("xuande");
        member2.setPhone("13912345678");
        memberList.add(member1);
        memberList.add(member2);
        ExportParams params = new ExportParams("会员列表", "会员列表", ExcelType.XSSF);
        Map<String, Object> map = new HashMap<>();
        map.put(NormalExcelConstants.DATA_LIST, memberList);
        map.put(NormalExcelConstants.CLASS, Member.class);
        map.put(NormalExcelConstants.PARAMS, params);
        map.put(NormalExcelConstants.FILE_NAME, "自定义");
        PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
    }

导入

@RequestMapping(value = "/importMemberList2", method = RequestMethod.POST)
    public Object importMemberList2(@RequestPart("file") MultipartFile file) {
        ImportParams params = new ImportParams();
        params.setTitleRows(1);
        params.setHeadRows(1);
        try {
            List<Member> list = ExcelImportUtil.importExcel(file.getInputStream(), Member.class, params);
            for (Member member : list) {
                System.out.println(member.toString());
            }
            return "导入成功.";
        } catch (Exception e) {
            e.printStackTrace();
            return "导入失败.";
        }
    }

导出结果如下
在这里插入图片描述
导入结果如下
在这里插入图片描述
具体复杂用法还需自行理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值