EasyExcel 学习之 导出 “类型及精度问题”

目录

现象

Excel 导出时,可能面临几个问题:

  • 类型问题:常见类型转换、URL 转图片等
  • 精度/格式问题:数字、日期转换

缘由

类型问题

Excel 常见的 API 有两种,Easy Excel 使用的是 Apache POI 。Excel 定义的单元格数据类型远远没有 Java 等语言的数据类型多,且数据导出时呈现方式可能与源数据不一致。故而,导出中存在数据类型转换。

精度/格式问题

精度问题

  • 保留几位小数、具体保留规则
  • 科学计数法:通过 Converter 转成 String 输出

格式问题

  • 日期

解决

  • 数字:@NumberFormat("#.##%")LocalDateStringConverter.class
  • 日期:@DateTimeFormat("yyyy年MM月dd日HH时mm分ss秒")
java 复制代码
package com.zxguan.monolithtemplate.common.service;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.format.NumberFormat;
import com.alibaba.excel.converters.localdate.LocalDateStringConverter;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

@AllArgsConstructor
@Data
public class TestRespDTO {

    @ExcelProperty(value = "姓名", index = 1)
    private String name;

    @ExcelProperty(value = "年龄", index = 2)
    private Integer age;

    @DateTimeFormat("yyyy-MM-dd")
    @ExcelProperty(value = "出生年月日", index = 3, converter = LocalDateStringConverter.class)
    private LocalDate birthDt;

    @NumberFormat("#.##")
    @ExcelProperty(value = "资产", index = 4)
    private BigDecimal assets;

}
相关推荐
dxnb2221 分钟前
Datawhale25年10月组队学习:math for AI+Task3线性代数(下)
人工智能·学习·线性代数
Century_Dragon22 分钟前
【世纪龙科技】新能源汽车动力电池拆装与检测虚拟实训软件介绍
学习
w2vmany26 分钟前
postmessage xss初步学习
前端·学习·xss
立志成为大牛的小牛1 小时前
数据结构——二十五、邻接矩阵(王道408)
开发语言·数据结构·c++·学习·程序人生
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [kernel][irq]softirq
linux·笔记·学习
71-31 小时前
C语言——关机小程序(有system()和strcmp()函数的知识点)
c语言·笔记·学习
试试勇气1 小时前
Linux学习笔记(九)--Linux进程终止与进程等待
linux·笔记·学习
淮北4941 小时前
立创EDA学习(一、新建项目与自定义元件)
学习
Json____1 小时前
学习springBoot框架-开发一个酒店管理系统,来熟悉springboot框架语法~
spring boot·后端·学习
deng-c-f10 小时前
Linux C/C++ 学习日记(28):KCP协议(四):如何实现更复杂的业务:将连接状态的管理进行封装,用户只需实现发送、接收、断开的处理逻辑。
学习·网络编程·kcp