项目的 技术组件,基于 EasyExcel 实现 Excel 的读写操作,可用于实现最常见的 Excel 导入导出等功能。
以 [系统管理 -> 岗位管理] 菜单为例子,讲解它 Excel 导出的实现。
在 PostController 类中,定义 导出接口。代码如下:
- ① 将从数据库中查询出来的列表,一般可以复用分页接口,需要设置 不过滤分页。
- ② 将 PostDO 列表,转换成 PostRespVO 列表,之后通过 ExcelUtils 转换成 Excel 文件,返回给前端。
1.1.1 PostExcelVO 类
复用 PostRespVO 类,实现 岗位 Excel 导出的 VO 类。代码如下:
- ① 每个字段上,添加 注解,声明 Excel Head 头部的名字。每个字段的值,就是它对应的 Excel Row 行的数据值。
- ② 如果字段的的注解 属性是 DictConvert 转换器,用于字典的转换。例如说,通过 字段,将 转换成“开启”列, 转换成”禁用”列。稍后,我们会在 「3. 字段转换器」 小节来详细讲讲。
- ③ 在类上,添加 注解,表示未添加 的字段,不进行导出。
因此,最终 Excel 导出的效果如下:

1.1.2 ExcelUtils 写入
ExcelUtils 的 方法,将列表以 Excel 响应给前端。代码如下图:

在 界面,定义 操作,代码如下图:

以 [系统管理 -> 用户管理] 菜单为例子,讲解它 Excel 导出的实现。

在 UserController 类中,定义 导入接口。代码如下:

将前端上传的 Excel 文件,读取成 UserImportExcelVO 列表。
2.1.1 UserImportExcelVO 类
创建 UserImportExcelVO 类,用户 Excel 导入的 VO 类。它的作用和 Excel 导入是一样的,代码如下:

对应使用的 Excel 导入文件如下:

2.1.2 ExcelUtils 读取
ExcelUtils 的 方法,读取 Excel 文件成列表。代码如下图:


在 界面,定义 Excel 导入的功能,代码如下图:

EasyExcel 定义了 Converter 接口,用于实现字段的转换。它有两个核心方法:
① 方法:将 Excel Row 对应表格的值,转换成 Java 内存中的值。例如说,Excel 的“状态”列,将“状态”列转换成 ,”禁用”列转换成 。
② 方法:恰好相反,将 Java 内存中的值,转换成 Excel Row 对应表格的值。例如说,Excel 的“状态”列,将 转换成“开启”列, 转换成”禁用”列。
以项目中提供的 DictConvert 举例子,它实现 Converter 接口,提供字典数据的转换。代码如下:

实现的代码比较简单,自己看看就可以明白。
在需要转换的字段上,声明注解 的 属性是 DictConvert 转换器,注解 为对应的字典数据的类型。示例如下:

基于 《EasyExcel 中的注解 》 文章,整理相关注解。
这是最常用的一个注解,注解中有三个参数 、、 分别代表列明、列序号、数据转换方式。 和 只能二选一,通常不用设置 。
**实践
用于设置列宽度的注解,注解中只有一个参数 。 的单位是字符长度,最大可以设置 255 个字符,因为一个 Excel 单元格最大可以写入的字符个数,就是 255 个字符。
**实践
用于设置单元格内容字体格式的注解。参数如下:
用于设置合并单元格的注解。参数如下:
用于设置行高。参数如下:
设置内容格式注解。参数如下:
符号,数字或公式将以字符串形式展示</td></tr> <tr><td></td> <td>设置是否水平居中</td></tr> <tr><td></td> <td>设置文本是否应换行。将此标志设置为通过在多行上显示使单元格中的所有内容可见</td></tr> <tr><td></td> <td>设置是否垂直居中</td></tr> <tr><td></td> <td>设置单元格中文本旋转角度。03版本的Excel旋转角度区间为-90°~90°,07版本的Excel旋转角度区间为0°~180°</td></tr> <tr><td></td> <td>设置单元格中缩进文本的空格数</td></tr> <tr><td></td> <td>设置左边框的样式</td></tr> <tr><td></td> <td>设置右边框样式</td></tr> <tr><td></td> <td>设置上边框样式</td></tr> <tr><td></td> <td>设置下边框样式</td></tr> <tr><td></td> <td>设置左边框颜色</td></tr> <tr><td></td> <td>设置右边框颜色</td></tr> <tr><td></td> <td>设置上边框颜色</td></tr> <tr><td></td> <td>设置下边框颜色</td></tr> <tr><td></td> <td>设置填充类型</td></tr> <tr><td></td> <td>设置背景色</td></tr> <tr><td></td> <td>设置前景色</td></tr> <tr><td></td> <td>设置自动单元格自动大小</td></tr></tbody></div> <p>用于定制标题字体格式。参数如下:</p> <div><thead><tr><th>参数</th> <th>含义</th></tr></thead> <tbody><tr><td></td> <td>设置字体名称</td></tr> <tr><td></td> <td>设置字体高度</td></tr> <tr><td></td> <td>设置字体是否斜体</td></tr> <tr><td></td> <td>是否设置删除线</td></tr> <tr><td></td> <td>设置字体颜色</td></tr> <tr><td></td> <td>设置偏移量</td></tr> <tr><td></td> <td>设置下划线</td></tr> <tr><td></td> <td>设置字体编码</td></tr> <tr><td></td> <td>设置字体是否家畜</td></tr></tbody></div> <p>设置标题行行高。参数如下:</p> <div><thead><tr><th>参数</th> <th>含义</th></tr></thead> <tbody><tr><td></td> <td>设置行高,-1代表自动行高</td></tr></tbody></div> <p>设置标题样式。参数如下:</p> <div><thead><tr><th>参数</th> <th>含义</th></tr></thead> <tbody><tr><td></td> <td>日期格式</td></tr> <tr><td></td> <td>设置单元格使用此样式隐藏</td></tr> <tr><td></td> <td>设置单元格使用此样式锁定</td></tr> <tr><td></td> <td>在单元格前面增加符号,数字或公式将以字符串形式展示 设置是否水平居中 设置文本是否应换行。将此标志设置为通过在多行上显示使单元格中的所有内容可见 设置是否垂直居中 设置单元格中文本旋转角度。03版本的Excel旋转角度区间为-90°~90°,07版本的Excel旋转角度区间为0°~180° 设置单元格中缩进文本的空格数 设置左边框的样式 设置右边框样式 设置上边框样式 设置下边框样式 设置左边框颜色 设置右边框颜色 设置上边框颜色 设置下边框颜色 设置填充类型 设置背景色 设置前景色 设置自动单元格自动大小
4.10
不将该字段转换成 Excel。
没有注解的字段都不转换

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/154504.html