public static void main(String[] args) throws FileNotFoundException {FileInputStream inputStream = new FileInputStream(new File("/Users/panzhi/Documents/easyexcel-user1.xls"));//初始化一个监听器UserDataListener userDataListener = new UserDataListener();//读取文件数据EasyExcel.read(inputStream, userDataListener).sheet().doRead();System.out.println("表头:" + JSONArray.toJSONString(userDataListener.getHeadList()));System.out.println("数据体:" + JSONArray.toJSONString(userDataListener.getDataList()));}运行程序,输出结果如下:
表头:[{0:"姓名",1:"年龄",2:"操作时间"}]数据体:[{0:"张三0",1:"20",2:"2021-03-28 16:32:40"},{0:"张三1",1:"21",2:"2021-03-28 16:32:40"},{0:"张三2",1:"22",2:"2021-03-28 16:32:40"},{0:"张三3",1:"23",2:"2021-03-28 16:32:40"},{0:"张三4",1:"24",2:"2021-03-28 16:32:40"},{0:"张三5",1:"25",2:"2021-03-28 16:32:40"},{0:"张三6",1:"26",2:"2021-03-28 16:32:40"},{0:"张三7",1:"27",2:"2021-03-28 16:32:40"},{0:"张三8",1:"28",2:"2021-03-28 16:32:40"},{0:"张三9",1:"29",2:"2021-03-28 16:32:40"}]其中key表示列下表!
2.3.3、复杂表头读取在实际的开发中,我们还会遇到复杂表头的数据读取,以如下表头为例,我们应该如何读取呢?

如果你是采用注解的方式导出的文件,同样也可以通过注解方式来读取,例如上文中,我们是使用如下实体类生成的文件,我们也可通过这个类读取文件!
public class UserEntity {@ExcelProperty(value = "https://www.jinnalai.com/fenxiang/班级")private String className;@ExcelProperty({"学生信息", "姓名"})private String name;@ExcelProperty({"学生信息", "年龄"})private int age;@DateTimeFormat("yyyy-MM-dd HH:mm:ss")@ExcelProperty({"学生信息", "入学时间"})private Date time;//set、get}//读取文件List<UserEntity> list = EasyExcel.read(filePath).head(UserEntity.class).sheet().doReadSync();System.out.println(JSONArray.toJSONString(list));读取结果如下:[{"age":20,"className":"一年级~1班","name":"张三0","time":1618719961000},{"age":21,"className":"一年级~1班","name":"张三1","time":1618719961000},{"age":22,"className":"一年级~1班","name":"张三2","time":1618719961000},{"age":23,"className":"一年级~1班","name":"张三3","time":1618719961000},{"age":24,"className":"一年级~1班","name":"张三4","time":1618719961000},{"age":25,"className":"一年级~1班","name":"张三5","time":1618719961000},{"age":26,"className":"一年级~1班","name":"张三6","time":1618719961000},{"age":27,"className":"一年级~1班","name":"张三7","time":1618719961000},{"age":28,"className":"一年级~1班","name":"张三8","time":1618719961000},{"age":29,"className":"一年级~1班","name":"张三9","time":1618719961000}]如果你是使用动态参数化来生成文件,那么这个时候可以采用动态监听器的方式来读取文件,在读取的时候需要指定数据所在行,示例代码如下:public static void main(String[] args) throws FileNotFoundException {FileInputStream inputStream = new FileInputStream(new File("/Users/panzhi/Documents/easyexcel-export-user4.xlsx"));//初始化一个监听器UserDataListener userDataListener = new UserDataListener();//读取文件数据,指定数据所在行使用headRowNumber方法EasyExcel.read(inputStream, userDataListener).sheet().headRowNumber(2).doRead();System.out.println("表头:" + JSONArray.toJSONString(userDataListener.getHeadList()));System.out.println("数据体:" + JSONArray.toJSONString(userDataListener.getDataList()));}读取结果如下:表头:[{0:"班级",1:"学生信息",2:"学生信息",3:"学生信息"},{0:"班级",1:"姓名",2:"年龄",3:"入学时间"}]数据体:[{0:"一年级~1班",1:"张三0",2:"20",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三1",2:"21",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三2",2:"22",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三3",2:"23",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三4",2:"24",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三5",2:"25",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三6",2:"26",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三7",2:"27",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三8",2:"28",3:"2021-04-18 12:26:01"},{0:"一年级~1班",1:"张三9",2:"29",3:"2021-04-18 12:26:01"}]
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- java的excel的读取和写入 java操作excel
- ececl表格常用的公式 新手入门excel表格制作
- 如何用excel做回归分析 回归分析步骤推荐
- excel办公软件 excel办公软件基础知识
- jsp调用java方法 java基础面试题及答案
- 在线excel转json excel一键转换json
- 表格软件excel如何使用 excel表格免费版
- excel解密方法 excel解密三步法
- 堆排序代码解析 堆排序的算法及代码实现
- socket传输文件的原理 socket实现文件传输
