RUOYI框架导出一对多的方式

直接在对象里面的集合上加上 “@Excel”,吧List中对应需要导出的属性这设置好;

在父对象中的每个需要导出的数据加上“needMerge = true”, 子对象不需要加;

查询的时候list集合中需要带上数据才可实现,下面效果:

 

下面这个是官方导出方式,效果类似

 这样实现出来对应的数据还是比较明显,希望对大家有帮助;

文章为记录性文章,减少开发时间!

Java中,特别是使用Spring Boot和MyBatis这样的框架时,导出主表和关联的子表通常涉及到数据报表或者Excel导出操作。"ruoyi"可能是某个项目的名称,它可能会有一个模块用于生成报告。 要导出主表(父表)加上子表的数据,一般会遵循以下几个步骤: 1. **数据查询**: 使用MyBatis动态SQL或者一对映射,从数据库获取主表及其所有子表的相关数据。例如,如果你有一个用户(User)表和一个订单(Order)表,用户可以有个订单,你可以通过User对象获取其所有的Order记录。 ```java List<User> users = userMapper.selectAllUsersWithOrders(); ``` 2. **数据转换**: 将查询结果转化为适合导出的结构,比如将个Order对象封装到User对象的一个列表中,形成包含嵌套数据的对象。 ```java Map<String, Object> dataMap = new HashMap<>(); for (User user : users) { Map<String, Object> userModel = user.toMap(); List<Map<String, Object>> orderMaps = new ArrayList<>(); // 每个用户的订单列表 for (Order order : user.getOrders()) { orderMaps.add(order.toMap()); } userModel.put("orders", orderMaps); dataMap.put(user.getId(), userModel); } ``` 3. **导出处理**: 使用如Apache POI、JasperReports等库将数据模型转换成Excel文件。可以遍历dataMap,逐行写入到工作表中。 ```java try (OutputStream outputStream = new FileOutputStream("report.xlsx")) { ExportExcelUtils.exportExcel(dataMap, "users_orders", outputStream); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值