From 4fb9858190c2764b3301465e61376e2e6b5a24fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=8B=E8=BE=9E=E6=9C=AA=E5=AF=92?= <545073804@qq.com>
Date: Wed, 11 Feb 2026 14:09:20 +0800
Subject: [PATCH] =?UTF-8?q?update=20FastExcel=E5=8D=87=E7=BA=A7=E8=BF=81?=
=?UTF-8?q?=E7=A7=BB=E8=87=B3Apache=20Fesod?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 9 ++--
ruoyi-common/ruoyi-common-excel/pom.xml | 4 +-
.../excel/convert/ExcelBigNumberConvert.java | 12 +++---
.../excel/convert/ExcelDictConvert.java | 12 +++---
.../excel/convert/ExcelEnumConvert.java | 12 +++---
.../common/excel/core/CellMergeHandler.java | 6 +--
.../common/excel/core/CellMergeStrategy.java | 10 ++---
.../excel/core/DefaultExcelListener.java | 8 ++--
.../common/excel/core/ExcelDownHandler.java | 12 +++---
.../common/excel/core/ExcelListener.java | 2 +-
.../excel/handler/DataWriteHandler.java | 20 ++++-----
.../dromara/common/excel/utils/ExcelUtil.java | 42 +++++++++----------
.../excel/utils/ExcelWriterWrapper.java | 28 ++++++-------
.../dromara/demo/domain/vo/ExportDemoVo.java | 4 +-
.../demo/domain/vo/TestDemoImportVo.java | 2 +-
.../dromara/demo/domain/vo/TestDemoVo.java | 6 +--
.../dromara/demo/domain/vo/TestTreeVo.java | 4 +-
.../demo/listener/ExportDemoListener.java | 2 +-
.../service/impl/ExportExcelServiceImpl.java | 2 +-
.../src/main/resources/vm/java/vo.java.vm | 4 +-
.../dromara/system/domain/vo/SysClientVo.java | 4 +-
.../dromara/system/domain/vo/SysConfigVo.java | 4 +-
.../dromara/system/domain/vo/SysDeptVo.java | 4 +-
.../system/domain/vo/SysDictDataVo.java | 4 +-
.../system/domain/vo/SysDictTypeVo.java | 4 +-
.../system/domain/vo/SysLogininforVo.java | 4 +-
.../system/domain/vo/SysOperLogVo.java | 4 +-
.../system/domain/vo/SysOssConfigVo.java | 2 +-
.../dromara/system/domain/vo/SysPostVo.java | 4 +-
.../dromara/system/domain/vo/SysRoleVo.java | 4 +-
.../system/domain/vo/SysUserExportVo.java | 8 ++--
.../system/domain/vo/SysUserImportVo.java | 2 +-
.../listener/SysUserImportListener.java | 4 +-
.../workflow/domain/vo/FlowCategoryVo.java | 4 +-
.../workflow/domain/vo/FlowSpelVo.java | 4 +-
.../workflow/domain/vo/TestLeaveVo.java | 4 +-
36 files changed, 132 insertions(+), 133 deletions(-)
diff --git a/pom.xml b/pom.xml
index 7afa6fd80..05154caba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
3.5.19
3.0.1
0.15.0
- 1.3.0
+ 2.0.1-incubating
2.3
1.44.0
3.5.16
@@ -147,10 +147,11 @@
${lombok.version}
+
- cn.idev.excel
- fastexcel
- ${fastexcel.version}
+ org.apache.fesod
+ fesod-sheet
+ ${fesod.version}
diff --git a/ruoyi-common/ruoyi-common-excel/pom.xml b/ruoyi-common/ruoyi-common-excel/pom.xml
index 47ba5284b..8f02dd6fa 100644
--- a/ruoyi-common/ruoyi-common-excel/pom.xml
+++ b/ruoyi-common/ruoyi-common-excel/pom.xml
@@ -22,8 +22,8 @@
- cn.idev.excel
- fastexcel
+ org.apache.fesod
+ fesod-sheet
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelBigNumberConvert.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelBigNumberConvert.java
index b88c3e429..71b1e8423 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelBigNumberConvert.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelBigNumberConvert.java
@@ -2,13 +2,13 @@ package org.dromara.common.excel.convert;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
-import cn.idev.excel.converters.Converter;
-import cn.idev.excel.enums.CellDataTypeEnum;
-import cn.idev.excel.metadata.GlobalConfiguration;
-import cn.idev.excel.metadata.data.ReadCellData;
-import cn.idev.excel.metadata.data.WriteCellData;
-import cn.idev.excel.metadata.property.ExcelContentProperty;
import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.sheet.converters.Converter;
+import org.apache.fesod.sheet.enums.CellDataTypeEnum;
+import org.apache.fesod.sheet.metadata.GlobalConfiguration;
+import org.apache.fesod.sheet.metadata.data.ReadCellData;
+import org.apache.fesod.sheet.metadata.data.WriteCellData;
+import org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
import java.math.BigDecimal;
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java
index c54816f76..5df7efb73 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelDictConvert.java
@@ -3,12 +3,12 @@ package org.dromara.common.excel.convert;
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
-import cn.idev.excel.converters.Converter;
-import cn.idev.excel.enums.CellDataTypeEnum;
-import cn.idev.excel.metadata.GlobalConfiguration;
-import cn.idev.excel.metadata.data.ReadCellData;
-import cn.idev.excel.metadata.data.WriteCellData;
-import cn.idev.excel.metadata.property.ExcelContentProperty;
+import org.apache.fesod.sheet.converters.Converter;
+import org.apache.fesod.sheet.enums.CellDataTypeEnum;
+import org.apache.fesod.sheet.metadata.GlobalConfiguration;
+import org.apache.fesod.sheet.metadata.data.ReadCellData;
+import org.apache.fesod.sheet.metadata.data.WriteCellData;
+import org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.SpringUtils;
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelEnumConvert.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelEnumConvert.java
index 5723e61e8..4960ab16f 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelEnumConvert.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/convert/ExcelEnumConvert.java
@@ -3,12 +3,12 @@ package org.dromara.common.excel.convert;
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
-import cn.idev.excel.converters.Converter;
-import cn.idev.excel.enums.CellDataTypeEnum;
-import cn.idev.excel.metadata.GlobalConfiguration;
-import cn.idev.excel.metadata.data.ReadCellData;
-import cn.idev.excel.metadata.data.WriteCellData;
-import cn.idev.excel.metadata.property.ExcelContentProperty;
+import org.apache.fesod.sheet.converters.Converter;
+import org.apache.fesod.sheet.enums.CellDataTypeEnum;
+import org.apache.fesod.sheet.metadata.GlobalConfiguration;
+import org.apache.fesod.sheet.metadata.data.ReadCellData;
+import org.apache.fesod.sheet.metadata.data.WriteCellData;
+import org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
import org.dromara.common.core.utils.reflect.ReflectUtils;
import org.dromara.common.excel.annotation.ExcelEnumFormat;
import lombok.extern.slf4j.Slf4j;
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeHandler.java
index 6a1a3a72d..215b022b6 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeHandler.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeHandler.java
@@ -3,9 +3,9 @@ package org.dromara.common.excel.core;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
-import cn.idev.excel.annotation.ExcelIgnore;
-import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
-import cn.idev.excel.annotation.ExcelProperty;
+import org.apache.fesod.sheet.annotation.ExcelIgnore;
+import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated;
+import org.apache.fesod.sheet.annotation.ExcelProperty;
import lombok.SneakyThrows;
import org.apache.poi.ss.util.CellRangeAddress;
import org.dromara.common.core.utils.reflect.ReflectUtils;
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeStrategy.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeStrategy.java
index 64d8c7779..4346bd08f 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeStrategy.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/CellMergeStrategy.java
@@ -1,12 +1,12 @@
package org.dromara.common.excel.core;
import cn.hutool.core.collection.CollUtil;
-import cn.idev.excel.metadata.Head;
-import cn.idev.excel.write.handler.SheetWriteHandler;
-import cn.idev.excel.write.merge.AbstractMergeStrategy;
-import cn.idev.excel.write.metadata.holder.WriteSheetHolder;
-import cn.idev.excel.write.metadata.holder.WriteWorkbookHolder;
import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.sheet.metadata.Head;
+import org.apache.fesod.sheet.write.handler.SheetWriteHandler;
+import org.apache.fesod.sheet.write.merge.AbstractMergeStrategy;
+import org.apache.fesod.sheet.write.metadata.holder.WriteSheetHolder;
+import org.apache.fesod.sheet.write.metadata.holder.WriteWorkbookHolder;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/DefaultExcelListener.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/DefaultExcelListener.java
index e715c5fc3..4bd3e18b4 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/DefaultExcelListener.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/DefaultExcelListener.java
@@ -1,10 +1,10 @@
package org.dromara.common.excel.core;
import cn.hutool.core.util.StrUtil;
-import cn.idev.excel.context.AnalysisContext;
-import cn.idev.excel.event.AnalysisEventListener;
-import cn.idev.excel.exception.ExcelAnalysisException;
-import cn.idev.excel.exception.ExcelDataConvertException;
+import org.apache.fesod.sheet.context.AnalysisContext;
+import org.apache.fesod.sheet.event.AnalysisEventListener;
+import org.apache.fesod.sheet.exception.ExcelAnalysisException;
+import org.apache.fesod.sheet.exception.ExcelDataConvertException;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.ValidatorUtils;
import org.dromara.common.json.utils.JsonUtils;
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java
index 05c79c410..98609e468 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java
@@ -6,12 +6,12 @@ import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
-import cn.idev.excel.metadata.FieldCache;
-import cn.idev.excel.metadata.FieldWrapper;
-import cn.idev.excel.util.ClassUtils;
-import cn.idev.excel.write.handler.SheetWriteHandler;
-import cn.idev.excel.write.metadata.holder.WriteSheetHolder;
-import cn.idev.excel.write.metadata.holder.WriteWorkbookHolder;
+import org.apache.fesod.sheet.metadata.FieldCache;
+import org.apache.fesod.sheet.metadata.FieldWrapper;
+import org.apache.fesod.sheet.util.ClassUtils;
+import org.apache.fesod.sheet.write.handler.SheetWriteHandler;
+import org.apache.fesod.sheet.write.metadata.holder.WriteSheetHolder;
+import org.apache.fesod.sheet.write.metadata.holder.WriteWorkbookHolder;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddressList;
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelListener.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelListener.java
index 957b30755..d7388f81b 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelListener.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelListener.java
@@ -1,6 +1,6 @@
package org.dromara.common.excel.core;
-import cn.idev.excel.read.listener.ReadListener;
+import org.apache.fesod.sheet.read.listener.ReadListener;
/**
* Excel 导入监听
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/handler/DataWriteHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/handler/DataWriteHandler.java
index 3770f8032..b0d4fff87 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/handler/DataWriteHandler.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/handler/DataWriteHandler.java
@@ -1,16 +1,16 @@
package org.dromara.common.excel.handler;
import cn.hutool.core.collection.CollUtil;
-import cn.idev.excel.annotation.ExcelProperty;
-import cn.idev.excel.metadata.data.DataFormatData;
-import cn.idev.excel.metadata.data.WriteCellData;
-import cn.idev.excel.util.StyleUtil;
-import cn.idev.excel.write.handler.CellWriteHandler;
-import cn.idev.excel.write.handler.SheetWriteHandler;
-import cn.idev.excel.write.handler.context.CellWriteHandlerContext;
-import cn.idev.excel.write.metadata.holder.WriteSheetHolder;
-import cn.idev.excel.write.metadata.style.WriteCellStyle;
-import cn.idev.excel.write.metadata.style.WriteFont;
+import org.apache.fesod.sheet.annotation.ExcelProperty;
+import org.apache.fesod.sheet.metadata.data.DataFormatData;
+import org.apache.fesod.sheet.metadata.data.WriteCellData;
+import org.apache.fesod.sheet.util.StyleUtil;
+import org.apache.fesod.sheet.write.handler.CellWriteHandler;
+import org.apache.fesod.sheet.write.handler.SheetWriteHandler;
+import org.apache.fesod.sheet.write.handler.context.CellWriteHandlerContext;
+import org.apache.fesod.sheet.write.metadata.holder.WriteSheetHolder;
+import org.apache.fesod.sheet.write.metadata.style.WriteCellStyle;
+import org.apache.fesod.sheet.write.metadata.style.WriteFont;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java
index 74dbccbac..06d568309 100644
--- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java
+++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java
@@ -3,13 +3,13 @@ package org.dromara.common.excel.utils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.resource.ClassPathResource;
import cn.hutool.core.util.IdUtil;
-import cn.idev.excel.FastExcel;
-import cn.idev.excel.ExcelWriter;
-import cn.idev.excel.write.builder.ExcelWriterSheetBuilder;
-import cn.idev.excel.write.metadata.WriteSheet;
-import cn.idev.excel.write.metadata.fill.FillConfig;
-import cn.idev.excel.write.metadata.fill.FillWrapper;
-import cn.idev.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import org.apache.fesod.sheet.FesodSheet;
+import org.apache.fesod.sheet.ExcelWriter;
+import org.apache.fesod.sheet.write.builder.ExcelWriterSheetBuilder;
+import org.apache.fesod.sheet.write.metadata.WriteSheet;
+import org.apache.fesod.sheet.write.metadata.fill.FillConfig;
+import org.apache.fesod.sheet.write.metadata.fill.FillWrapper;
+import org.apache.fesod.sheet.write.style.column.LongestMatchColumnWidthStyleStrategy;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AccessLevel;
@@ -44,7 +44,7 @@ public class ExcelUtil {
* @return 转换后集合
*/
public static List importExcel(InputStream is, Class clazz) {
- return FastExcel.read(is).head(clazz).autoCloseStream(false).sheet().doReadSync();
+ return FesodSheet.read(is).head(clazz).autoCloseStream(false).sheet().doReadSync();
}
@@ -58,7 +58,7 @@ public class ExcelUtil {
*/
public static ExcelResult importExcel(InputStream is, Class clazz, boolean isValidate) {
DefaultExcelListener listener = new DefaultExcelListener<>(isValidate);
- FastExcel.read(is, clazz, listener).sheet().doRead();
+ FesodSheet.read(is, clazz, listener).sheet().doRead();
return listener.getExcelResult();
}
@@ -71,7 +71,7 @@ public class ExcelUtil {
* @return 转换后集合
*/
public static ExcelResult importExcel(InputStream is, Class clazz, ExcelListener listener) {
- FastExcel.read(is, clazz, listener).sheet().doRead();
+ FesodSheet.read(is, clazz, listener).sheet().doRead();
return listener.getExcelResult();
}
@@ -187,7 +187,7 @@ public class ExcelUtil {
*/
public static void exportExcel(List list, String sheetName, Class clazz, boolean merge,
OutputStream os, List options) {
- ExcelWriterSheetBuilder builder = FastExcel.write(os, clazz)
+ ExcelWriterSheetBuilder builder = FesodSheet.write(os, clazz)
.autoCloseStream(false)
// 自动适配
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
@@ -213,7 +213,7 @@ public class ExcelUtil {
* @param consumer 导出助手消费函数
*/
public static void exportExcel(Class headType, OutputStream os, List options, Consumer> consumer) {
- try (ExcelWriter writer = FastExcel.write(os, headType)
+ try (ExcelWriter writer = FesodSheet.write(os, headType)
.autoCloseStream(false)
// 自动适配
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
@@ -276,14 +276,14 @@ public class ExcelUtil {
*/
public static void exportTemplate(List data, String templatePath, OutputStream os) {
ClassPathResource templateResource = new ClassPathResource(templatePath);
- ExcelWriter excelWriter = FastExcel.write(os)
+ ExcelWriter excelWriter = FesodSheet.write(os)
.withTemplate(templateResource.getStream())
.autoCloseStream(false)
// 大数值自动转换 防止失真
.registerConverter(new ExcelBigNumberConvert())
- .registerWriteHandler(new DataWriteHandler(data.get(0).getClass()))
+ .registerWriteHandler(new DataWriteHandler(data.getFirst().getClass()))
.build();
- WriteSheet writeSheet = FastExcel.writerSheet().build();
+ WriteSheet writeSheet = FesodSheet.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
// 单表多数据导出 模板格式为 {.属性}
for (T d : data) {
@@ -349,13 +349,13 @@ public class ExcelUtil {
*/
public static void exportTemplateMultiList(Map data, String templatePath, OutputStream os) {
ClassPathResource templateResource = new ClassPathResource(templatePath);
- ExcelWriter excelWriter = FastExcel.write(os)
+ ExcelWriter excelWriter = FesodSheet.write(os)
.withTemplate(templateResource.getStream())
.autoCloseStream(false)
// 大数值自动转换 防止失真
.registerConverter(new ExcelBigNumberConvert())
.build();
- WriteSheet writeSheet = FastExcel.writerSheet().build();
+ WriteSheet writeSheet = FesodSheet.writerSheet().build();
for (Map.Entry map : data.entrySet()) {
// 设置列表后续还有数据
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
@@ -380,14 +380,14 @@ public class ExcelUtil {
*/
public static void exportTemplateMultiSheet(List