easyexcel excel自定义列导出 格式导出
1,需求
最近甲方提了一个需求,要求导出的excel的单元格式要按要求设定,日期的数据导出日期格式,数字的数据导出数值格式,时间的格式导出时间格式,百分比的数据导出百分比格式
最终效果如图所示:
2,探索
原本使用easypoi框架试了很多次,但导出的数据都是文本格式,后来大佬出手,让我试试easyexcel
easyexcel 官方文档:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write
3,撸代码
【实体类】
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ExcelExportFormatVO {@ExcelProperty(value = "工期",order =9 ,converter = IntegerNumberConverter.class)//用于做excel导入导出private Integer duration;@ColumnWidth(20)@ExcelProperty(value = "计划开始时间",order =10 ,converter = StringToDateConverter.class)//用于做excel导入导出@JsonFormat(pattern = "yyyy/MM/dd", timezone = "GMT+8")private Date start;@ColumnWidth(20)@ExcelProperty(value = "计划结束时间",order =11 ,converter = StringToDateConverter.class)//用于做excel导入导出@JsonFormat(pattern = "yyyy/MM/dd", timezone = "GMT+8")private Date finish;@ExcelProperty(value = "进度",order =16)@NumberFormat("0.00%")private Double overallProgress;;@ColumnWidth(20)@DateTimeFormat("HH:mm:ss")@ExcelProperty(value = "登录时间", order = 18)private Date loginTime;
}
注意:
1,一般日期格式使用注解 @DateTimeFormat 就可以设置,当然也可以使用自定义的 StringToDateConverter 用于转换数据格式,
但是需要保证字段的数据类型是Date
2,百分比这里使用注解 @NumberFormat 即可,至于其中的value值可参考excel的数据格式
【自定义转换器编写】
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.alibaba.excel.util.WorkBookUtil;import java.util.Date;public class StringToDateConverter implements Converter<Date> {public StringToDateConverter() {}public Class<Date> supportJavaTypeKey() {return Date.class;}public WriteCellData<?> convertToExcelData(Date value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {WriteCellData<?> cellData = new WriteCellData(value);String format = null;if (contentProperty != null && contentProperty.getDateTimeFormatProperty() != null) {format = contentProperty.getDateTimeFormatProperty().getFormat();}//这里可以设置自定义的日期格式WorkBookUtil.fillDataFormat(cellData, format, "yyyy/MM/dd");return cellData;}
}
【业务代码-全量导出】
//存放数据
List<ExcelExportFormatVO> dataList= new ArrayList<>();
//导出数据
EasyExcel.write(response.getOutputStream(), ExcelExportFormatVO.class).sheet(fileName).doWrite(dataList);
【业务代码-自定义列导出】
//存放数据
List<ExcelExportFormatVO> dataList= new ArrayList<>();
//需要导出的列,需要与实体的字段名对应,否则导不出来
List<String> fieldList = new ArrayList<>();
//导出数据
EasyExcel.write(response.getOutputStream(), ExcelExportFormatVO.class).includeColumnFiledNames(fieldList).sheet(fileName).doWrite(dataList);
easyexcel excel自定义列导出 格式导出相关推荐
- Easyexcel配置自定义列与自定义顺序导出下载Excel文件
依赖版本 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</art ...
- qtableview设置单元格颜色_一键解锁Excel自定义单元格格式!
实际工作中,常需要我们对单元格格式进行自定义设置,来突出显示我们需要看到的数据. 在自定义单元格格式时,我们常用如下方式先打开[设置单元格格式]对话框,再点击数字分类下的自定义: [开始]选项卡下的[ ...
- easy-excel 导出excel自定义列格式
导出excel的样式: 代码 @RequestMapping(value = "export",method = RequestMethod.GET)public void exp ...
- EXCEL——自定义单元格格式
自定义格式代码常规情况下分为四段,每一段的意思是: 正数格式;负数格式;零值格式;文本格式 注:如果格式串不全,则按以下方式应用自定义格式: 1.如果只使用一部分,格式代码指定的结构将应用于所有类型的 ...
- excel整列条件格式的设置
选中需要设置条件格式的某个单元格,然后添加所有条件格式(优先级高的条件最后添加) 设置好某个单元的条件格式后,使用格式刷复制格式.
- 前端使用xlsx、file-saver实现自定义excel格式导出(列宽、字体、边框、行高)
前端使用xlsx.file-saver实现excel导出 前端使用xlsx.file-saver实现excel导出 1.下载依赖 2.在需要导出excel的页面使用依赖 3.实现导出excel文件功能 ...
- 基于EasyExcel锁定指定列导出数据到excel
基于EasyExcel锁定指定列导出数据到excel 大家好,我是llp.最近在做系统报表时中有一个需求时这样的,需要查询系统数据导出excel,并要求导出的excel列中有一些时锁定的有一些时不锁定 ...
- springboot导出excel(easyexcel和poi 列下拉及表格锁定)
最近做的项目导入的数据量比较大,直接用poi或者easypoi会可能会出现OOM的情况,综合考虑下用easyexcel, pom引入所需包 <!-- https://mvnrepository. ...
- 根据Excel自定义的格式导出数据
需求背景: 我的系统中有这么多字段,可能分布在用户上传的excel文档中的任意一列, 现在按照用户的摆放的title位置,填充数据进excel. 模板样式: 维护用户定义的title信息和系统内属性对 ...
- easyexcel导出excel,大数据量100万以内分页查询zip格式导出
easyexcel导出excel,大数据量100万以内分页查询zip格式导出 准备工作 整体思路 controller层 service层 mapper层 VO 表结构 测试 备注 easyExcel ...
最新文章
- 如何给女朋友解释并发与并行的区别?
- 静态static关键字概述
- Leetcode016 3Sum Closest
- C++类的定义和对象的创建
- php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
- 这些数据分析方法你都掌握了么
- Inception V3 的 tensorflow 实现
- 使用wxPython内嵌浏览器
- 二元logistic回归前的单因素分析
- DevOps ACA 软件代码与质量管理(六)
- wow大芒果mysql,大芒果魔兽世界3.3.5GM命令范例.doc
- 论文之目录的页码修改
- vue将文件图片批量打包下载zip
- linux定时关闭系统at,『学了就忘』Linux系统管理 — 8.系统定时任务(at命令)
- 各点之间的最短距离——Java实现
- 编码的奥秘:从算盘到芯片
- 文心一言的魔性作图,我愣住了……
- ipad微信已连接服务器失败,云旗舰云非凡千纸鹤微信安全提醒怎么办,你的微信账号通过ipad副设备发表失败...
- 2022年危险化学品生产单位主要负责人考试题库及在线模拟考试
- 查看电脑连接的WiFi密码的两种方法
热门文章
- 电商后台管理系统——JavaWeb项目 毕业设计论文
- RQNOJ 34 紧急援救
- McAfee Endpoint Security 10.6卸载
- Python 音频文件批量切割
- jdk32位安装包下载_PS2018下载AdobePhotoshopCC2018安装激活教程
- yum源配置(网络仓库)
- multisim14安装后怎么汉化(超详解)
- java htmlelement_Java Element.outerHtml方法代码示例
- 网站服务器mine类型设置,windows服务器如何配置MIME类型
- ESP-8266wifi模块获取网络实时时间