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;

}
相关推荐
fruge8 小时前
从第三方库中偷师:学习 Lodash 的函数封装技巧
学习
lingggggaaaa11 小时前
免杀对抗——C2远控篇&C&C++&DLL注入&过内存核晶&镂空新增&白加黑链&签名程序劫持
c语言·c++·学习·安全·网络安全·免杀对抗
陈天伟教授11 小时前
基于学习的人工智能(5)机器学习基本框架
人工智能·学习·机器学习
我先去打把游戏先11 小时前
ESP32学习笔记(基于IDF):基于OneNet的ESP32的OTA功能
笔记·物联网·学习·云计算·iphone·aws
初願致夕霞12 小时前
学习笔记——基础hash思想及其简单C++实现
笔记·学习·哈希算法
小女孩真可爱12 小时前
大模型学习记录(五)-------调用大模型API接口
pytorch·深度学习·学习
hd51cc12 小时前
C++ 学习笔记 名称
笔记·学习
cmcm!14 小时前
学习笔记1
数据库·笔记·学习
Hcoco_me15 小时前
YOLO目标检测学习路线图
学习·yolo·目标检测
WXG101116 小时前
【Flask】前后端交互示例
笔记·学习