easypoi一对多导出excel

Employee.java

get,set,constructor省略

package com.easypoi.demo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection;

import java.util.Date;
import java.util.List;


public class Employee {

    /**
     * id
     */
    private String id;

    /**
     * 员工姓名
     */
    @Excel(name = "员工姓名",  width = 30,needMerge = true)
    private String name;

    /**
     * 员工性别
     */
    @Excel(name = "员工性别", replace = { "男_1", "女_2" }, suffix = "生", isImportField = "true_st",needMerge = true)
    private int sex;

    @Excel(name = "开始日期", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd", isImportField = "true_st", width = 20,needMerge = true)
    private Date birthday;

    @Excel(name = "完工日期", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd",needMerge = true)
    private Date registrationDate;

    @ExcelCollection(name = "报销金额")
    private List<BaoXiao> baoxiao;

}
BaoXiao.java

get,set,constructor省略

package com.easypoi.demo;

import cn.afterturn.easypoi.excel.annotation.Excel;

public class BaoXiao {
    /**
     * 火车票金额
     */
    @Excel(name = "火车票金额", width = 30)
    private String hcpje;

    /**
     * 汽车票金额
     */
    @Excel(name = "火车票金额", width = 30)
    private String qcpje;

    public BaoXiao(String hcpje, String qcpje) {
        this.hcpje = hcpje;
        this.qcpje = qcpje;
    }
}

Demo.java

package com.easypoi.demo;

import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import org.apache.poi.ss.usermodel.Workbook;
import org.junit.Test;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Demo {
    @Test
    public void fun(){
        try {
            List<BaoXiao> xiaos = new ArrayList<>();
            BaoXiao baoXiao1 = new BaoXiao("100","200");
            BaoXiao baoXiao2 = new BaoXiao("110","210");
            BaoXiao baoXiao3 = new BaoXiao("120","220");
            BaoXiao baoXiao4 = new BaoXiao("130","230");
            xiaos.add(baoXiao1);
            xiaos.add(baoXiao2);
            xiaos.add(baoXiao3);
            xiaos.add(baoXiao4);

            List<Employee> list = new ArrayList<>();
            Employee s1 = new Employee("001","张三",1,new Date(),new Date(),xiaos);
            Employee s2 = new Employee("002","李四",2,new Date(),new Date(),xiaos);
            Employee s3 = new Employee("003","王五",1,new Date(),new Date(),xiaos);
            Employee s4 = new Employee("004","赵六",2,new Date(),new Date(),xiaos);
            list.add(s1);
            list.add(s2);
            list.add(s3);
            list.add(s4);
            Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("员工差旅报销金额","学生"),
                    Employee.class, list);
            FileOutputStream outputStream = new FileOutputStream("D:/差旅报销金额.xls");
            workbook.write(outputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

效果图

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值