Java使用Easy Excel对Excel进行操作

Easy Excel使用教程API:

读Excel | Easy Excel 官网

使用代码示例:

需要自行创建一个Maven项目,然后pom文件中需要的依赖如下:

<dependencies>
        <!-- easyExcel 表格依赖 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.3.2</version>
        </dependency>

        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.22</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>4.12</scope>
        </dependency>
    </dependencies>

创建读写对象:

DemoData.java

package pojo;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class DemoData {

    @ExcelProperty("标题1")
    private String title1;
    @ExcelProperty("标题2")
    private String title2;
    @ExcelProperty("标题3")
    private String title3;
    @ExcelProperty("标题4")
    private String title4;

}

读文件:

准备好待读取的Excel文件

注意,表头字段名称需要与读写对象(DemoData.java)中的ExcelProperty属性值一致,否则会导致读不到数据。

读取文件的示例代码:

package read;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.listener.PageReadListener;
import org.junit.Test;
import pojo.DemoData;

public class SimpleRead {
    @Test
    public void simpleRead(){
        // 写法1:JDK8+ ,不用额外写一个DemoDataListener
        // since: 3.0.0-beta1
        String fileName = "C:\\Users\\11972\\Desktop\\test.xlsx";
        // 这里默认每次会读取100条数据 然后返回过来 直接调用使用数据就行
        // 具体需要返回多少行可以在`PageReadListener`的构造函数设置
        EasyExcel.read(fileName, DemoData.class, new PageReadListener<DemoData>(dataList -> {
            for (DemoData demoData : dataList) {
                System.out.println(demoData);
            }
        })).sheet().doRead();
    }
}

执行结果:

写文件:

将数据写入到Excel文件中,准备好一个空的Excel文件

将程序读取到的数据写入到Excel中:

package write;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.util.ListUtils;
import org.junit.Test;
import pojo.DemoData;
import java.util.List;

public class SimpleWrite {

    //产生模拟数据
    private List<DemoData> dataContent(int count) {
        List<DemoData> list = ListUtils.newArrayList();
        for (int i = 0; i < count; i++) {
            list.add(new DemoData(i+"a",i+"b",i+"c",i+"d"));
        }
        return list;
    }

    @Test
    public void write(){
        String fileName = "C:\\Users\\11972\\Desktop\\writeTesg.xlsx";
        // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
        EasyExcel.write(fileName, DemoData.class).sheet("写入数据").doWrite(dataContent(10));

    }
}

执行结果:

10条数据被写入到了Excel中。

根据模板填充文件:

如果想让写入到Excel中数据,按照自定义的格式去填充,那么就需要事先定义好一个模板文件,如下所示:

数据的表头为黄色,生成的数据为红色。

第二行中的标签代表要填充的字段,对应到读写对象(DemoData.java)时,字段和Excel中的列对应关系。格式为 {.字段名称}

示例代码:

package write;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
import org.junit.Test;
import pojo.DemoData;

import java.util.List;

public class FillWrite {
    private List<DemoData> MockData(int count) {
        List<DemoData> list = ListUtils.newArrayList();
        for (int i = 0; i < count; i++) {
            list.add(new DemoData(i+"aa",i+"bb",i+"cc",i+"dd"));
        }
        return list;
    }

    @Test
    public void write(){
        // 模板文件地址
        String templateFileName = "C:\\Users\\11972\\Desktop\\template.xlsx";

        // 输出文件地址
        String fileName = "C:\\Users\\11972\\Desktop\\new.xlsx";

        try (ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build()) {
            WriteSheet writeSheet = EasyExcel.writerSheet().build();
            excelWriter.fill(MockData(20), writeSheet);
        }
    }
}

运行结果:

按照模板的格式,将数据进行了输出。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Easy Excel 是一款基于 Java操作 Excel 的开源工具库,可以方便地进行 Excel 文件的读写操作。在使用 Java Easy Excel 进行自定义报表字段时,我们可以按照以下步骤进行操作。 首先,我们需要创建一个 Java 类,用于定义报表字段的数据结构。可以使用注解来标识每个字段,例如使用 @ExcelProperty 注解来定义报表中的每个列,使用 @ExcelIgnore 注解来忽略某些字段。 接下来,我们可以通过 Java Easy Excel 提供的 API 来读取 Excel 文件,并将数据转换为我们定义的报表字段对象。可以使用 ExcelReader 类的 read 方法来读取 Excel 文件中的数据,并通过指定报表字段对象的类名来指定读取的目标对象。 读取完成后,我们可以对获取到的报表字段对象进行处理,例如可以进行一些数据的过滤、排序、统计等操作。可以使用 Java 的集合框架对数据进行操作,根据需要进行加工处理。 最后,我们可以通过 Java Easy Excel 提供的 API 将处理后的数据写入到一个新的 Excel 文件中。可以使用 ExcelWriter 类来创建一个新的 Excel 文件,并将报表字段对象中的数据写入到文件中的每一行。 使用 Java Easy Excel 进行自定义报表字段的操作相对简单,只需要明确定义报表字段的数据结构,并根据需要读取、处理和写入 Excel 文件即可。这样,我们就可以方便地通过 Java 进行自定义报表字段的操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值