栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

EasyPoi导入导出(二)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 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 userOrders;

测试类中:

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

然后将相关信息导出:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号