实现功能:可以将java对象转换成excel文件或者将excel文件中的内容读取到java中
具体的实现:
- 导入对应的依赖
- 实现读操作
- 实现写操作
-
导入对应的依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency>
-
实现写操作
1. 编写对应的excel表格的实体类
2.在java中编写方法实现文件的写入(文件不存在则创建写入)
/** * 实现excel的写操作 */ @Test public void TestWrite(){ //构建数据 List<UserData> list=new ArrayList<>(); for (int i = 1; i <= 10; i++) { UserData userData = new UserData(); userData.setName("jack"+i); userData.setUid(i); userData.setAge(20+i); list.add(userData); } //设置文件路径和名称 String filePath="f:\\excel\\01.xlsx"; EasyExcel.write(filePath,UserData.class) .sheet("用户信息") .doWrite(list); }
效果如下:
-
实现操作
- 导入依赖
- 编写与表格中类中对应的实体类
- 编写对应的监听器
- 编写具体的实现过程
注意:1在写操作中已经实现,2我们想要读取的excel表格就是写操作的生成的表格,所以1和2已经实现,直接进入第三步
3.编写对应的监听器AnalysisEventListener<UserData>
public class ExcelLisener extends AnalysisEventListener<UserData> { //会读取excel每一行的记录,并封装成userdata对象(从第二行开始读取) @Override public void invoke(UserData userData, AnalysisContext analysisContext) { System.out.println(userData); } //读取表头信息 @Override public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { System.out.println("表头信息"+headMap); } //读取之后执行 @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }
4.具体实现
@Test public void TestRead(){ //设置文件路径和名称 String filePath="f:\\excel\\01.xlsx"; EasyExcel.read(filePath,UserData.class,new ExcelLisener()).sheet().doRead(); }
效果:
总结:使用EasyExcel这个组件实现.xlsx(excel)文件的读写十分的简单,大概的操作就是这样,如果有什么疑问,不懂的,或者有错误,欢迎留言。