easyExcel2.2.10中为0数据显示为空

news/2025/4/26 12:44:22/

在 EasyExcel 2.2.10 中,如果希望将数值为 0 的数据在 Excel 中显示为空(即不显示 0),可以通过以下方法实现:

1. 使用 @ExcelProperty 的 format 参数

通过设置单元格格式为 ## 会忽略 0),将 0 显示为空:

@ExcelProperty(value = "数量", format = "#")
private Integer quantity;

此时,若字段值为 0,Excel 单元格会显示为空。


2. 自定义 Converter 过滤零值

通过自定义 Converter 将 0 转换为空字符串:

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;@Slf4j
@Component
public class ZeroToEmptyConverter implements Converter<Integer> {@Overridepublic Class supportJavaTypeKey() {return Integer.class;}@Overridepublic CellDataTypeEnum supportExcelTypeKey() {return null;}@Overridepublic Integer convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {return 0;}@Overridepublic CellData convertToExcelData(Integer value, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {if (value == null || value == 0) {return new CellData<>(""); // 如果值为 0 或 null,则返回空字符串}return new CellData<>(value.toString()); // 否则正常写入}
}

3. 检查数据源

确保字段的值为 0(而非 null 或其他值):

// 示例数据对象
YourDataClass data = new YourDataClass();
data.setQuantity(0); // 明确设置为 0

4. 使用 @ExcelIgnore 注解(可选)

如果需要在特定条件下忽略 0 的写入,可以结合业务逻辑动态处理:

public class YourDataClass {private Integer quantity;@ExcelIgnorepublic boolean isQuantityZero() {return quantity != null && quantity == 0;}@ExcelProperty("数量")public String getQuantityForExcel() {return (quantity == null || quantity == 0) ? "" : quantity.toString();}
}

效果验证

  • 导出 Excel 后,数值为 0 的单元格会显示为空。

  • 如果数值为非零(如 1-5),则正常显示。


http://www.ppmy.cn/news/1583497.html

相关文章

字节跳动春招研发部笔试题解

字节跳动春招研发部笔试题 1.万万没想到之聪明的编辑 我叫王大锤&#xff0c;是一家出版社的编辑。我负责校对投稿来的英文稿件&#xff0c;这份工作非常烦人&#xff0c;因为每天都要去修正无数的拼写错误。但是&#xff0c;优秀的人总能在平凡的工作中发现真理。我发现一个发…

力扣32.最长有效括号(栈)

32. 最长有效括号 - 力扣&#xff08;LeetCode&#xff09; 代码区&#xff1a; #include<stack> #include<string> /*最长有效*/ class Solution { public:int longestValidParentheses(string s) {stack<int> st;int ans0;int ns.length();st.push(-1);fo…

第十三章:优化内存管理_《C++性能优化指南》_notes

优化内存管理 一、内存管理基础概念二、自定义分配器三、智能指针优化重点知识代码示例&#xff1a;智能指针性能对比 四、性能优化关键点总结多选题设计题答案与详解多选题答案设计题示例答案&#xff08;第1题&#xff09; 一、内存管理基础概念 重点知识 动态内存分配开销…

go的参数传递都是值传递,但切片需要注意

根据之前学习python和java的经验&#xff0c;每次学习一门新语言时&#xff0c;一定要搞清楚方法的参数传递是值传递&#xff0c;引用传递还是指针传递。 主要原因就是需要知道&#xff0c;某种类型的数据传递给某个方法后&#xff0c;方法里面对它的修改是否会影响到这个数据本…

支付宝关键词排名优化策略:提升小程序曝光的关键

在支付宝平台&#xff0c;关键词排名对于小程序的曝光度和用户获取至关重要。精准的关键词策略可以帮助小程序在搜索结果中获得更高的排名&#xff0c;从而吸引更多的潜在用户。本文将详细解析支付宝关键词排名优化的核心策略和实施步骤&#xff0c;助力您的小程序在激烈的市场…

C++智能指针万字详细讲解(包含智能指针的模拟实现)

在笔试&#xff0c;面试中智能指针经常出现&#xff0c;如果你对智能指针的作用&#xff0c;原理&#xff0c;用法不了解&#xff0c;那么可以看看这篇博客讲解&#xff0c;此外本博客还简单模拟实现了各种指针&#xff0c;在本篇的最后还应对面试题对智能指针的知识点进行了拓…

字典树与01trie

字典树简介 当我们通过字典查一个字或单词的时候&#xff0c;我们会通过前缀或关键字的来快速定位一个字的位置&#xff0c;进行快速查找。 字典树就是类似字典中索引表的一种数据结构&#xff0c;能够帮助我们快速定位一个字符串的位置。 字典树是一种存储字符串的数据结构…

【江协科技STM32】读写备份寄存器RTC实时时钟(学习笔记)

参考相关文章理解&#xff1a; 【江协科技STM32】Unix时间戳&#xff08;学习笔记&#xff09;-CSDN博客 【江协科技STM32】BKP备寄存器&RTC实时时钟&#xff08;学习笔记&#xff09;_stm32断电保存时钟-CSDN博客 读写备份寄存器 接线图&#xff1a;VBAT是从STLINK的…