![](https://img.kancloud.cn/3b/ef/3befa76ae26a96ffc6716394e20f18a2_1473x178.jpg)
**1. 创建对应的实体类**
如果使用注解`@ExcelProperty`标记属性,则属性声明的顺序不必与表格中列的顺序一致。
```java
/** 1. 如果没有用注解@ExcelProperty,则声明属性的顺序要与表格中列的顺序一致 */
@Data
public class Student {
private String name;
private Integer age;
private String gender;
private Integer total;
}
/** 2. 如果用注解@ExcelProperty,则声明属性的顺序不必与表格中列的顺序一致 */
@Data
public class Student {
@ExcelProperty(index = 3)
private Integer total;
@ExcelProperty(index = 2)
private String gender;
@ExcelProperty(index = 1)
private Integer age;
@ExcelProperty(index = 0)
private String name;
}
/** 3. 也可以指定表头名称 */
@Data
public class Student {
@ExcelProperty("身高")
private Integer total;
@ExcelProperty("性别")
private String gender;
@ExcelProperty("年龄")
private Integer age;
@ExcelProperty("姓名")
private String name;
}
```
**2. 创建对应的监听器**
```java
@Slf4j
public class StudentExcelListener implements ReadListener<Student> {
/**
* 每读取表格中的一行时就会被调用一次
*/
@Override
public void invoke(Student student, AnalysisContext analysisContext) {
log.info("invoke -> {}", student);
//invoke -> Student(total=175, gender=男, age=25, name=张三)
//invoke -> Student(total=179, gender=男, age=28, name=李四)
//invoke -> Student(total=180, gender=男, age=35, name=王五)
}
/**
* 当读取完表格所有的行后被调用
*/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
log.info("doAfterAllAnalysed");
}
}
```
**3. 调用`EasyExcel.read`方法读取表格**
```java
@Test
public void read01() {
String path = this.getClass().getResource("/read/001.xlsx").getPath();
//读取第一个sheet, 文件流会自动关闭的
EasyExcel.read(path, Student.class, new StudentExcelListener()).sheet().doRead();
}
```
- 跨域问题
- 跨域是什么
- 跨域解决方案
- 从后端解决
- nginx反向代理
- WebSocket
- websocket是什么
- websocket协议
- 使用场景
- 实现方式
- 注解与html5原生方式
- websocketAPI
- 实现步骤
- 文件上传
- 文件下载
- 广播通信
- 定时推送
- 编程与socketjs方式
- socketjs与stompjs框架
- 实现步骤
- 重载目的地
- SimpMessagingTemplate
- 定时向前端推送数据
- 5种监听事件
- 点对点通信
- 拦截器
- HandshakeInterceptor
- ChannelInterceptor
- poi之excel表格
- 表格版本
- POI常用类
- POI依赖
- 写表格
- 编写表格过程
- 单元格边框样式
- 单元格背景色
- 冻结行或列
- 单元格合并
- 单元格内换行
- 文档内跳转
- 读表格
- Web中的Excel操作
- 导出表格
- 读取表格
- poi之word文档
- word版本
- 写word
- 基本使用
- 标题样式
- 添加图片
- EasyExcel表格
- EasyExcel是什么
- 与其他Excel工具对比
- EasyExcel依赖
- 读Excel
- 简单读取
- 指定列位置
- 读取多个sheet
- 格式转换
- 多行表头
- 同步读
- 写Excel
- 简单写入
- 单元格样式
- 拦截器
- 列宽
- 冻结行或列
- 合并单元格
- 填充Excel
- SpringSecurity
- SpringSecurity是什么
- 同类型产品对比
- 环境搭建
- 相关概念
- 密码加密
- Web权限控制
- UserDetailsService接口
- 登录认证
- 自定义登录页
- 未授权跳转登录页
- 权限控制
- 自定义403页面
- 权限注解
- 记住我功能
- 注销功能
- CSRF
- CSRF是什么
- CSRF保护演示
- 前后端分离权限控制
- 环境搭建
- 认证实现
- 会话管理
- 动态权限管理
- 微服务权限控制
- 权限控制方案
- SpringBoot整合RabbitMQ
- 整合步骤
- Fanout交换机演示
- Direct交换机演示
- Topic交换机演示
- @RabbitListener方法
- JWT认证与授权
- 环境搭建
- 密码加密
- 认证与授权