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;

}
相关推荐
不灭锦鲤2 小时前
网络安全学习第48天
学习
怪侠_岭南一只猿2 小时前
爬虫工程师入门阶段一:基础知识点完全学习文档
css·爬虫·python·学习·html
今天你TLE了吗3 小时前
JVM学习笔记:第八章——执行引擎
java·jvm·笔记·后端·学习
蒙***团3 小时前
使用 MinMix 创建 Tailwindcss 学习网站全流程经验分享
学习
y = xⁿ3 小时前
【从零开始学习Redis|第四篇】从底层理解缓存问题:雪崩、击穿、穿透与一致性设计
java·redis·学习·缓存
温柔一只鬼.5 小时前
GUI学习——day2
java·开发语言·学习
云边散步5 小时前
godot2D游戏教程系列二(10)
笔记·学习·游戏·游戏开发
所谓伊人,在水一方3335 小时前
【Python数据科学实战之路】第12章 | 无监督学习算法实战:聚类与降维的奥秘
python·sql·学习·算法·信息可视化·聚类
泯仲5 小时前
从零起步学习MySQL 第三章:DML语句定义及常见用法示例
数据库·学习·mysql
钰衡大师6 小时前
Vue 3 源码学习教程
前端·vue.js·学习