欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java Excel导入导出功能实现

程序员文章站 2024-03-24 16:10:34
...

代码已经上传到我的Github,有兴趣的同学可以下载来看看:
地址:https://github.com/ylw-github/EasyPoi-Demo

我使用的是EasyPoi注解的功能实现的,实现了Excel导入导出的功能。当然如果想要详细了解EasyPoi的功能,可以查看 easypoi详细文档 ,先看看效果图:
Java Excel导入导出功能实现

下面直接贴上代码

1.所需要的依赖

<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>3.2.0</version>
</dependency>

<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-web</artifactId>
    <version>3.2.0</version>
</dependency>

<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-annotation</artifactId>
    <version>3.2.0</version>
</dependency>

2.构造实体类

public class Bill implements Serializable {

    @Excel(name = "序号",orderNum = "0")
    private int num;

    @Excel(name="工资",orderNum = "1")
    private double salary;

    @Excel(name="车费",orderNum = "2")
    private double carFare;

    @Excel(name="伙食费",orderNum = "3")
    private double eatFare;


    @Excel(name = "合计",groupName = "房租",orderNum = "4")
    private double total;
    @Excel(name = "水费",groupName = "房租",orderNum = "5")
    private double water;
    @Excel(name = "电费",groupName = "房租",orderNum = "6")
    private double eleCharge;
    @Excel(name = "物业费",groupName = "房租",orderNum = "7")
    private double manageFee;

    @Excel(name="备注",orderNum = "8")
    private String remark;

    public Bill() {
    }

    public Bill(int num, double salary, double carFare, double eatFare, double total, double water, double eleCharge, double manageFee, String remark) {
        this.num = num;
        this.salary = salary;
        this.carFare = carFare;
        this.eatFare = eatFare;
        this.total = total;
        this.water = water;
        this.eleCharge = eleCharge;
        this.manageFee = manageFee;
        this.remark = remark;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public double getCarFare() {
        return carFare;
    }

    public void setCarFare(double carFare) {
        this.carFare = carFare;
    }

    public double getEatFare() {
        return eatFare;
    }

    public void setEatFare(double eatFare) {
        this.eatFare = eatFare;
    }


    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }

    public double getWater() {
        return water;
    }

    public void setWater(double water) {
        this.water = water;
    }

    public double getEleCharge() {
        return eleCharge;
    }

    public void setEleCharge(double eleCharge) {
        this.eleCharge = eleCharge;
    }

    public double getManageFee() {
        return manageFee;
    }

    public void setManageFee(double manageFee) {
        this.manageFee = manageFee;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "Bill{" +
                "num=" + num +
                ", salary=" + salary +
                ", carFare=" + carFare +
                ", eatFare=" + eatFare +
                ", total=" + total +
                ", water=" + water +
                ", eleCharge=" + eleCharge +
                ", manageFee=" + manageFee +
                ", remark='" + remark + '\'' +
                '}';
    }
}

3.Excel导出功能

@Test
public void exportExcel() throws Exception {
    List<Bill> billList = new ArrayList<>();
    billList.add(new Bill(1, 10000, 1000, 1500, 1200, 100, 200, 100, "余额充足"));
    billList.add(new Bill(2, 10000, 1200, 1000, 1200, 100, 200, 100, "余额不足"));
    billList.add(new Bill(3, 14000, 1300, 1200, 1200, 100, 200, 100, "无"));
    billList.add(new Bill(4, 14000, 1100, 1300, 1200, 100, 200, 100, "无"));
    billList.add(new Bill(5, 14000, 1200, 1400, 1200, 100, 200, 100, "无"));
    billList.add(new Bill(6, 14000, 1500, 1500, 1200, 100, 200, 100, "无"));
    billList.add(new Bill(7, 15000, 1800, 100, 1200, 100, 200, 100, "还贷"));
    billList.add(new Bill(8, 14000, 1200, 1400, 1200, 100, 200, 100, "无"));
    billList.add(new Bill(9, 14000, 1500, 1500, 1200, 100, 200, 100, "无"));
    billList.add(new Bill(10, 14000, 1200, 1400, 1200, 100, 200, 100, "无"));
    billList.add(new Bill(11, 14000, 1500, 1500, 1200, 100, 200, 100, "余额不足"));
    billList.add(new Bill(12, 14000, 1200, 1400, 1200, 100, 200, 100, "余额不足"));

    ExportParams params = new ExportParams();
    params.setTitle("年度账单");
    params.setSheetName("年度账单表");
    params.setType(ExcelType.XSSF);

    Workbook workbook = ExcelExportUtil.exportExcel(params, Bill.class, billList);
    FileOutputStream fileOutputStream = new FileOutputStream("Bill.xls");
    workbook.write(fileOutputStream);

}

4.Excel导入功能

@Test
public void importExcel() throws Exception {
    ImportParams params = new ImportParams();
    params.setTitleRows(1);
    params.setHeadRows(2);
    List<Bill> bills = ExcelImportUtil.importExcel(new File("Bill.xls"), Bill.class, params);
    for (Bill bill : bills) {
        System.out.println(bill.toString());
    }
}