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;

}
相关推荐
zl_dfq3 分钟前
Python学习4 之 【函数】(函数的相关语法、下划线的使用、global与nonlocal关键字)
python·学习
承渊政道4 分钟前
【优选算法】(实战剖析链表核心操作技巧)
开发语言·数据结构·c++·vscode·学习·算法·链表
li星野11 分钟前
DeepSeek-V3介绍
学习
正经人_x1 小时前
学习日记36:TokenSeg
学习
VelinX1 小时前
【个人学习||spring boot】
spring boot·后端·学习
计算机安禾1 小时前
【数据结构与算法】第20篇:二叉树的链式存储与四种遍历(前序、中序、后序、层序)
c语言·开发语言·数据结构·c++·学习·算法·visual studio
m0_564876841 小时前
提示词工程Zero-Shot、One-Shot、Few-Shot
人工智能·深度学习·学习
ZhiqianXia1 小时前
Gem5 学习笔记(3) : 源代码鸟瞰
笔记·学习
看见代码就想敲2 小时前
java学习之(Maven pom.xml 详细讲解)
java·学习·maven
m0_716765232 小时前
C++巩固案例--通讯录管理系统详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio