EasyExcel的写操作
1、引入依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
<!--EasyExcel需要用到poi的依赖,2.1.1对应3.17,否则容易出错-->
<!--xls-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<!--xlsx-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
</dependencies>
2、创建实体类
@Data//此处为lombok的注解,可自动生成getset方法,没有lombok插件的可以看以下以往的文章,或者手动getset
public class demoData {
//Excel表头 为excel表中的第一行数据
@ExcelProperty("学生编号")
private Integer sno;
@ExcelProperty("学生姓名")
private String sname;
}
3、具体代码实现
public class Testeasyexcel {
public static void main(String[] args) {
//easyexcel写操作
//设置写入文件夹地址和文件名称
String filename= "D:\\write.xlsx";
List<demoData> list = new ArrayList<>();
for(int i=0;i<100;i++){
demoData d = new demoData();
d.setSname("Mike"+i);
d.setSno(i);
list.add(d);
}
//调用方法 参数1:文件输出 2:实体类
EasyExcel.write(filename,demoData.class).sheet("学生列表").doWrite(list);
//sheet为excel的左下角的多个页面,此处为学生列表的页面
}
}
读操作
1、建实体类
@Data
public class demoData {
//Excel表头
@ExcelProperty(value = "学生编号",index = 0)//次数要多加个索引号,表示表头的第几列
private Integer sno;
@ExcelProperty(value = "学生姓名",index = 1)
private String sname;
}
2、写监听器
//监听器 要继承AnalysisEventListener<demoData> demoData此处为实体类
public class excelListener extends AnalysisEventListener<demoData> {
//一行一行读出excel内容 不读表头 EasyExcel之所以效率高,也是因它一行一行读取,解析。
@Override
public void invoke(demoData demoData, AnalysisContext analysisContext) {
System.out.println("***"+demoData);
}
//读取表头
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头"+headMap);
}
//读取完执行的方法
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
3、具体代码实现
public class ReadTestEasyExcel {
public static void main(String[] args) {
String filename= "D:\\write.xlsx";
EasyExcel.read(filename,demoData.class,new excelListener()).sheet().doRead();
}
}
控制台效果
希望该文章对你们有帮助哈,有帮到你们的麻烦点个赞哈,有兴趣的朋友可以关注一下公众号,公众号上会发布一些最近行业常用的技术,还有一些自己见解的文章。