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 小时前
【Rust入门知识点学与练】第24课:Trait 基础
开发语言·学习·rust
潜心一志7 小时前
HALCON软件——基本架构,算子参数
学习·计算机视觉
爱吃苹果的日记本9 小时前
数据结构第三课(时间复杂度)
数据结构·学习
泡泡鱼(敲代码中)11 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
fanged12 小时前
Agent的Skills(TODO)
学习
是隼人12 小时前
buuctf-pwn picoctf_2018_shellcode(ret2shellcode)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
m4Rk_13 小时前
【论文阅读】Agent 记忆机制(69):STITCH——用上下文意图解决“语义相关但情境错误”的记忆检索
论文阅读·人工智能·学习·开源·github
2601_9499506313 小时前
个人在线刷题的工具
学习·考研·小程序·刷题·小程序推荐
一尘之中13 小时前
深入解析面向服务的架构(SOA):从特性到实施
学习·架构·ai写作
秦哈哈15 小时前
【Hello Agents】学习笔记(二)
笔记·学习·microsoft