当前位置: 首页 > news >正文

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

目录

  • 现象
  • 缘由
    • 类型问题
    • 精度/格式问题
      • 精度问题
      • 格式问题
  • 解决

现象

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

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

缘由

类型问题

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

精度/格式问题

精度问题

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

格式问题

  • 日期

解决

  • 数字:@NumberFormat("#.##%")LocalDateStringConverter.class
  • 日期:@DateTimeFormat("yyyy年MM月dd日HH时mm分ss秒")
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;}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • requests请求设置超时时间python
  • Debezium系列之:大规模应用debezium server采集数据库,从每个Debezium Server中导出JMX采集指标
  • 怎么利用接口发送图文彩信
  • 所有即将登陆iPhone 16的Apple智能功能以及预期发布时间
  • 监听键盘事件
  • 每日一练:回文链表
  • 【C#跨平台开发详解】C#跨平台开发技术之.NET Core基础学习及快速入门
  • 并发编程 - GCD信号量
  • 内网与外网的区别
  • 【北京迅为】《STM32MP157开发板使用手册》- 第二十章 Trusted Firmware-A 移植+第二十一章 U-Boot移植
  • HarmonyOS开发实战( Beta5.0)自定义装饰器实践规范
  • 掌握Python自动化:探索keymousego库的无限可能!
  • Oracle OCP认证值得考吗? 需要门槛吗?
  • 【软件设计师真题】下午题第四大题---算法设计
  • 高基数 GroupBy 在 SLS SQL 中的查询加速
  • 【Leetcode】101. 对称二叉树
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 2019.2.20 c++ 知识梳理
  • Bootstrap JS插件Alert源码分析
  • canvas绘制圆角头像
  • Computed property XXX was assigned to but it has no setter
  • IDEA常用插件整理
  • IndexedDB
  • JavaScript创建对象的四种方式
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • js正则,这点儿就够用了
  • MySQL主从复制读写分离及奇怪的问题
  • php ci框架整合银盛支付
  • python学习笔记 - ThreadLocal
  • Redis学习笔记 - pipline(流水线、管道)
  • Solarized Scheme
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 闭包,sync使用细节
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 面试总结JavaScript篇
  • 温故知新之javascript面向对象
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • # 安徽锐锋科技IDMS系统简介
  • #define
  • (Java入门)学生管理系统
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (笔试题)合法字符串
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (十三)Flask之特殊装饰器详解
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (四)stm32之通信协议
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (原创)可支持最大高度的NestedScrollView
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1