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自定义列导出 格式导出相关推荐

  1. Easyexcel配置自定义列与自定义顺序导出下载Excel文件

    依赖版本 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</art ...

  2. qtableview设置单元格颜色_一键解锁Excel自定义单元格格式!

    实际工作中,常需要我们对单元格格式进行自定义设置,来突出显示我们需要看到的数据. 在自定义单元格格式时,我们常用如下方式先打开[设置单元格格式]对话框,再点击数字分类下的自定义: [开始]选项卡下的[ ...

  3. easy-excel 导出excel自定义列格式

    导出excel的样式: 代码 @RequestMapping(value = "export",method = RequestMethod.GET)public void exp ...

  4. EXCEL——自定义单元格格式

    自定义格式代码常规情况下分为四段,每一段的意思是: 正数格式;负数格式;零值格式;文本格式 注:如果格式串不全,则按以下方式应用自定义格式: 1.如果只使用一部分,格式代码指定的结构将应用于所有类型的 ...

  5. excel整列条件格式的设置

    选中需要设置条件格式的某个单元格,然后添加所有条件格式(优先级高的条件最后添加) 设置好某个单元的条件格式后,使用格式刷复制格式.

  6. 前端使用xlsx、file-saver实现自定义excel格式导出(列宽、字体、边框、行高)

    前端使用xlsx.file-saver实现excel导出 前端使用xlsx.file-saver实现excel导出 1.下载依赖 2.在需要导出excel的页面使用依赖 3.实现导出excel文件功能 ...

  7. 基于EasyExcel锁定指定列导出数据到excel

    基于EasyExcel锁定指定列导出数据到excel 大家好,我是llp.最近在做系统报表时中有一个需求时这样的,需要查询系统数据导出excel,并要求导出的excel列中有一些时锁定的有一些时不锁定 ...

  8. springboot导出excel(easyexcel和poi 列下拉及表格锁定)

    最近做的项目导入的数据量比较大,直接用poi或者easypoi会可能会出现OOM的情况,综合考虑下用easyexcel, pom引入所需包 <!-- https://mvnrepository. ...

  9. 根据Excel自定义的格式导出数据

    需求背景: 我的系统中有这么多字段,可能分布在用户上传的excel文档中的任意一列, 现在按照用户的摆放的title位置,填充数据进excel. 模板样式: 维护用户定义的title信息和系统内属性对 ...

  10. easyexcel导出excel,大数据量100万以内分页查询zip格式导出

    easyexcel导出excel,大数据量100万以内分页查询zip格式导出 准备工作 整体思路 controller层 service层 mapper层 VO 表结构 测试 备注 easyExcel ...

最新文章

  1. 如何给女朋友解释并发与并行的区别?
  2. 静态static关键字概述
  3. Leetcode016 3Sum Closest
  4. C++类的定义和对象的创建
  5. php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
  6. 这些数据分析方法你都掌握了么
  7. Inception V3 的 tensorflow 实现
  8. 使用wxPython内嵌浏览器
  9. 二元logistic回归前的单因素分析
  10. DevOps ACA 软件代码与质量管理(六)
  11. wow大芒果mysql,大芒果魔兽世界3.3.5GM命令范例.doc
  12. 论文之目录的页码修改
  13. vue将文件图片批量打包下载zip
  14. linux定时关闭系统at,『学了就忘』Linux系统管理 — 8.系统定时任务(at命令)
  15. 各点之间的最短距离——Java实现
  16. 编码的奥秘:从算盘到芯片
  17. 文心一言的魔性作图,我愣住了……
  18. ipad微信已连接服务器失败,云旗舰云非凡千纸鹤微信安全提醒怎么办,你的微信账号通过ipad副设备发表失败...
  19. 2022年危险化学品生产单位主要负责人考试题库及在线模拟考试
  20. 查看电脑连接的WiFi密码的两种方法

热门文章

  1. 电商后台管理系统——JavaWeb项目 毕业设计论文
  2. RQNOJ 34 紧急援救
  3. McAfee Endpoint Security 10.6卸载
  4. Python 音频文件批量切割
  5. jdk32位安装包下载_PS2018下载AdobePhotoshopCC2018安装激活教程
  6. yum源配置(网络仓库)
  7. multisim14安装后怎么汉化(超详解)
  8. java htmlelement_Java Element.outerHtml方法代码示例
  9. 网站服务器mine类型设置,windows服务器如何配置MIME类型
  10. ESP-8266wifi模块获取网络实时时间