EasyPoi导入导出(二)

EasyPoi导出List集合、Collection集合

官网:http://doc.wupaas.com/docs/easypoi/easypoi-1c0u4mo8p4ro8

导出List集合:

首先在实体类user中添加爱好字段

 使用@ExcelIgnore注解,忽略原始爱好字段的list集合,然后定义一个新的String类型的字符串,用于存储list集合的元素,修改get方法:创建一个StringBuilder对象,用来拼接字符串并且用分号隔开。

然后将爱好信息写入到指定的excel表格中

@Test
    public void testExport() throws IOException {
        //获取数据
        List<User> list = userList();
        //将数据导出到Excel
        //参数1:ExportParams对象 参数2:导出的类型  参数3:导出的数据集合
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("用户信息表", "用户excel表"), User.class, list);
        //使用流将excel写入到指定的位置
        FileOutputStream outputStream = new FileOutputStream("C:/Users/1/Desktop/easyPoi/easyExcel.xls");//指定写出的位置
        workbook.write(outputStream);//将数据输出
        //关闭流
        workbook.close();
        outputStream.close();
    }

 导出Collection集合:

在导出collection集合前,先来导出对象。

首先创建一个UserCard实体类:

@ExcelTarget("card")
@Data
public class UserCard implements Serializable {
    @Excel(name = "身份证号",width = 40.0)
    private String cardNum;
    @Excel(name="用户籍贯",width = 40.0)
    private String address;
}

同样该实体来也要实现Serializable,并且是@ExcelTarget注解声明,类中字段使用@Excel声明

然后在User实体类中声明UserCard对象:

@ExcelEntity//导出对象数据  一对一关系
    private UserCard userCard;

此处使用@ExcelEntity注解(该注解表示一个继续深入导出的实体,但他没有太多的实际意义,只是告诉系统这个对象里面同样有导出的字段)

在测试类中设置UserCard对象字段的相关信息

 //用户身份信息
            UserCard card = new UserCard();
            card.setCardNum("123456789012345678");
            card.setAddress("山东省淄博市高青县");
            user.setUserCard(card);

然后导出即可。

在导出collection集合时步骤和导出对象数据基本相同,只不过导出的对象数据是一对一的关系,而导出的集合数据是一对多的关系,因此在User实体类中需要使用@ExcelCollection注解标注(该注解表示一个集合,主要针对一对多的导出,比如一个老师对应多个科目,科目就可以用集合表示)

@ExcelCollection(name = "用户订单表") //导出对象集合数据    一对多关系
    private List<UserOrder> userOrders;

测试类中:

//用户订单信息
            List<UserOrder> ordersList = new ArrayList<>();
            ordersList.add(new UserOrder("12","订单01"));
            ordersList.add(new UserOrder("13","订单02"));
            ordersList.add(new UserOrder("14","订单03"));
            user.setUserOrders(ordersList);

然后将相关信息导出:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值