This is an automated email from the ASF dual-hosted git repository.

delei pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fesod.git


The following commit(s) were added to refs/heads/main by this push:
     new 90fb1af2 refactor: update import statements to use util classes from 
sheet package (#819)
90fb1af2 is described below

commit 90fb1af2203fb592f8362885a6d8f9fb23c9fa78
Author: gongzhongqiang <[email protected]>
AuthorDate: Mon Jan 19 23:31:04 2026 +0800

    refactor: update import statements to use util classes from sheet package 
(#819)
---
 .../fesod/sheet/analysis/ExcelAnalyserImpl.java    |   2 +-
 .../sheet/analysis/csv/CsvExcelReadExecutor.java   |   2 +-
 .../analysis/v03/handlers/EofRecordHandler.java    |   2 +-
 .../analysis/v03/handlers/LabelRecordHandler.java  |   2 +-
 .../v03/handlers/LabelSstRecordHandler.java        |   2 +-
 .../fesod/sheet/analysis/v07/XlsxSaxAnalyser.java  |   4 +-
 .../analysis/v07/handlers/CellTagHandler.java      |   6 +-
 .../analysis/v07/handlers/CountTagHandler.java     |   2 +-
 .../analysis/v07/handlers/HyperlinkTagHandler.java |   2 +-
 .../analysis/v07/handlers/MergeCellTagHandler.java |   2 +-
 .../sheet/analysis/v07/handlers/RowTagHandler.java |   4 +-
 .../java/org/apache/fesod/sheet/cache/Ehcache.java |   2 +-
 .../fesod/sheet/constant/BuiltinFormats.java       |   4 +-
 .../fesod/sheet/context/WriteContextImpl.java      |   4 +-
 .../fesod/sheet/converters/ConverterKeyBuild.java  |   2 +-
 .../sheet/converters/DefaultConverterLoader.java   |   2 +-
 .../inputstream/InputStreamImageConverter.java     |   2 +-
 .../converters/string/StringNumberConverter.java   |   2 +-
 .../sheet/converters/url/UrlImageConverter.java    |   2 +-
 .../fesod/sheet/enums/ByteOrderMarkEnum.java       |   2 +-
 .../apache/fesod/sheet/enums/CellDataTypeEnum.java |   2 +-
 .../sheet/metadata/AbstractParameterBuilder.java   |   2 +-
 .../fesod/sheet/metadata/csv/CsvDataFormat.java    |   4 +-
 .../apache/fesod/sheet/metadata/csv/CsvSheet.java  |   4 +-
 .../apache/fesod/sheet/metadata/data/CellData.java |   2 +-
 .../fesod/sheet/metadata/data/DataFormatData.java  |   2 +-
 .../sheet/metadata/data/RichTextStringData.java    |   2 +-
 .../fesod/sheet/metadata/data/WriteCellData.java   |   2 +-
 .../metadata/property/DateTimeFormatProperty.java  |   2 +-
 .../sheet/metadata/property/ExcelHeadProperty.java |   2 +-
 .../sheet/metadata/property/FontProperty.java      |   2 +-
 .../AbstractExcelReaderParameterBuilder.java       |   2 +-
 .../read/listener/ModelBuildEventListener.java     |   2 +-
 .../sheet/read/listener/PageReadListener.java      |   2 +-
 .../read/metadata/holder/AbstractReadHolder.java   |   2 +-
 .../holder/xlsx/XlsxReadWorkbookHolder.java        |   2 +-
 .../processor/DefaultAnalysisEventProcessor.java   |   4 +-
 .../apache/fesod/sheet/support/ExcelTypeEnum.java  |   2 +-
 .../org/apache/fesod/sheet/util/BooleanUtils.java  | 112 --------
 .../org/apache/fesod/sheet/util/ClassUtils.java    |   2 +
 .../apache/fesod/sheet/util/ConverterUtils.java    |   1 +
 .../org/apache/fesod/sheet/util/DateUtils.java     |   3 +
 .../org/apache/fesod/sheet/util/FieldUtils.java    |   2 +
 .../org/apache/fesod/sheet/util/FileUtils.java     |   1 +
 .../java/org/apache/fesod/sheet/util/IntUtils.java |  52 ----
 .../java/org/apache/fesod/sheet/util/IoUtils.java  | 106 -------
 .../org/apache/fesod/sheet/util/ListUtils.java     | 148 ----------
 .../java/org/apache/fesod/sheet/util/MapUtils.java | 124 ---------
 .../org/apache/fesod/sheet/util/MemberUtils.java   |  69 -----
 .../org/apache/fesod/sheet/util/NumberUtils.java   |   1 +
 .../org/apache/fesod/sheet/util/PositionUtils.java |  82 ------
 .../org/apache/fesod/sheet/util/SheetUtils.java    |   1 +
 .../org/apache/fesod/sheet/util/StringUtils.java   | 306 ---------------------
 .../org/apache/fesod/sheet/util/StyleUtil.java     |   1 +
 .../org/apache/fesod/sheet/util/WorkBookUtil.java  |   1 +
 .../write/executor/AbstractExcelWriteExecutor.java |   2 +-
 .../write/executor/ExcelWriteFillExecutor.java     |   6 +-
 .../handler/impl/FillStyleCellWriteHandler.java    |   2 +-
 .../impl/WriteSheetWorkbookWriteHandler.java       |   2 +-
 .../write/metadata/holder/WriteSheetHolder.java    |   2 +-
 .../write/metadata/holder/WriteWorkbookHolder.java |   4 +-
 .../sheet/write/metadata/style/WriteCellStyle.java |   2 +-
 .../sheet/write/metadata/style/WriteFont.java      |   2 +-
 .../write/style/HorizontalCellStyleStrategy.java   |   2 +-
 .../LongestMatchColumnWidthStyleStrategy.java      |   2 +-
 .../sheet/annotation/ExcelPropertyFormatTest.java  |   2 +-
 .../org/apache/fesod/sheet/bom/BomDataTest.java    |   2 +-
 .../org/apache/fesod/sheet/csv/CsvFormatTest.java  |   2 +-
 ...xcelAnalysisStopSheetExceptionDataListener.java |   4 +-
 .../sheet/fill/style/FillStyleAnnotatedTest.java   |   2 +-
 .../fesod/sheet/fill/style/FillStyleDataTest.java  |   2 +-
 .../sheet/parameter/AutoStripParameterTest.java    |   2 +-
 .../apache/fesod/sheet/util/StringUtilsTest.java   |  53 ----
 73 files changed, 81 insertions(+), 1120 deletions(-)

diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/ExcelAnalyserImpl.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/ExcelAnalyserImpl.java
index 464efdec..cfc49040 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/ExcelAnalyserImpl.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/ExcelAnalyserImpl.java
@@ -23,6 +23,7 @@ import java.io.InputStream;
 import java.util.List;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.analysis.csv.CsvExcelReadExecutor;
 import org.apache.fesod.sheet.analysis.v03.XlsSaxAnalyser;
 import org.apache.fesod.sheet.analysis.v07.XlsxSaxAnalyser;
@@ -46,7 +47,6 @@ import org.apache.fesod.sheet.util.ClassUtils;
 import org.apache.fesod.sheet.util.DateUtils;
 import org.apache.fesod.sheet.util.FileUtils;
 import org.apache.fesod.sheet.util.NumberDataFormatterUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.hssf.OldExcelFormatException;
 import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
 import org.apache.poi.poifs.crypt.Decryptor;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/csv/CsvExcelReadExecutor.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/csv/CsvExcelReadExecutor.java
index 65a6924d..9d11f1a9 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/csv/CsvExcelReadExecutor.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/csv/CsvExcelReadExecutor.java
@@ -35,6 +35,7 @@ import org.apache.commons.csv.CSVFormat;
 import org.apache.commons.csv.CSVParser;
 import org.apache.commons.csv.CSVRecord;
 import org.apache.commons.io.input.BOMInputStream;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.analysis.ExcelReadExecutor;
 import org.apache.fesod.sheet.context.csv.CsvReadContext;
 import org.apache.fesod.sheet.enums.ByteOrderMarkEnum;
@@ -48,7 +49,6 @@ import org.apache.fesod.sheet.read.metadata.ReadSheet;
 import org.apache.fesod.sheet.read.metadata.holder.ReadRowHolder;
 import org.apache.fesod.sheet.read.metadata.holder.csv.CsvReadWorkbookHolder;
 import org.apache.fesod.sheet.util.SheetUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 
 /**
  * CSV Excel Read Executor, responsible for reading and processing CSV files.
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/EofRecordHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/EofRecordHandler.java
index a9363ece..4e579355 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/EofRecordHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/EofRecordHandler.java
@@ -20,12 +20,12 @@
 package org.apache.fesod.sheet.analysis.v03.handlers;
 
 import java.util.LinkedHashMap;
+import org.apache.fesod.common.util.BooleanUtils;
 import org.apache.fesod.sheet.context.xls.XlsReadContext;
 import org.apache.fesod.sheet.enums.RowTypeEnum;
 import org.apache.fesod.sheet.metadata.Cell;
 import org.apache.fesod.sheet.read.metadata.holder.ReadRowHolder;
 import org.apache.fesod.sheet.read.metadata.holder.xls.XlsReadSheetHolder;
-import org.apache.fesod.sheet.util.BooleanUtils;
 import org.apache.poi.hssf.record.Record;
 
 /**
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/LabelRecordHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/LabelRecordHandler.java
index c5bd5fe1..8b205f13 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/LabelRecordHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/LabelRecordHandler.java
@@ -19,12 +19,12 @@
 
 package org.apache.fesod.sheet.analysis.v03.handlers;
 
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
 import org.apache.fesod.sheet.context.xls.XlsReadContext;
 import org.apache.fesod.sheet.enums.RowTypeEnum;
 import org.apache.fesod.sheet.metadata.GlobalConfiguration;
 import org.apache.fesod.sheet.metadata.data.ReadCellData;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.hssf.record.LabelRecord;
 import org.apache.poi.hssf.record.Record;
 
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/LabelSstRecordHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/LabelSstRecordHandler.java
index aa3bb513..362890e5 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/LabelSstRecordHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v03/handlers/LabelSstRecordHandler.java
@@ -20,6 +20,7 @@
 package org.apache.fesod.sheet.analysis.v03.handlers;
 
 import java.util.Map;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.analysis.v03.IgnorableXlsRecordHandler;
 import org.apache.fesod.sheet.cache.ReadCache;
 import org.apache.fesod.sheet.context.xls.XlsReadContext;
@@ -27,7 +28,6 @@ import org.apache.fesod.sheet.enums.RowTypeEnum;
 import org.apache.fesod.sheet.metadata.Cell;
 import org.apache.fesod.sheet.metadata.GlobalConfiguration;
 import org.apache.fesod.sheet.metadata.data.ReadCellData;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.hssf.record.LabelSSTRecord;
 import org.apache.poi.hssf.record.Record;
 
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/XlsxSaxAnalyser.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/XlsxSaxAnalyser.java
index 44b13bcb..7f62f173 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/XlsxSaxAnalyser.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/XlsxSaxAnalyser.java
@@ -33,6 +33,8 @@ import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.common.util.MapUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.analysis.ExcelReadExecutor;
 import 
org.apache.fesod.sheet.analysis.v07.handlers.sax.SharedStringsTableHandler;
 import org.apache.fesod.sheet.analysis.v07.handlers.sax.XlsxRowHandler;
@@ -46,9 +48,7 @@ import org.apache.fesod.sheet.metadata.CellExtra;
 import org.apache.fesod.sheet.read.metadata.ReadSheet;
 import org.apache.fesod.sheet.read.metadata.holder.xlsx.XlsxReadWorkbookHolder;
 import org.apache.fesod.sheet.util.FileUtils;
-import org.apache.fesod.sheet.util.MapUtils;
 import org.apache.fesod.sheet.util.SheetUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/CellTagHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/CellTagHandler.java
index 8069ae76..372d2040 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/CellTagHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/CellTagHandler.java
@@ -20,6 +20,9 @@
 package org.apache.fesod.sheet.analysis.v07.handlers;
 
 import java.math.BigDecimal;
+import org.apache.fesod.common.util.BooleanUtils;
+import org.apache.fesod.common.util.PositionUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.constant.ExcelXmlConstants;
 import org.apache.fesod.sheet.constant.FesodSheetConstants;
 import org.apache.fesod.sheet.context.xlsx.XlsxReadContext;
@@ -27,9 +30,6 @@ 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.read.metadata.holder.xlsx.XlsxReadSheetHolder;
-import org.apache.fesod.sheet.util.BooleanUtils;
-import org.apache.fesod.sheet.util.PositionUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.xml.sax.Attributes;
 
 /**
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/CountTagHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/CountTagHandler.java
index 964ebea4..fe66941e 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/CountTagHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/CountTagHandler.java
@@ -19,9 +19,9 @@
 
 package org.apache.fesod.sheet.analysis.v07.handlers;
 
+import org.apache.fesod.common.util.PositionUtils;
 import org.apache.fesod.sheet.constant.ExcelXmlConstants;
 import org.apache.fesod.sheet.context.xlsx.XlsxReadContext;
-import org.apache.fesod.sheet.util.PositionUtils;
 import org.xml.sax.Attributes;
 
 /**
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/HyperlinkTagHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/HyperlinkTagHandler.java
index 57767f99..20888f6b 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/HyperlinkTagHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/HyperlinkTagHandler.java
@@ -20,11 +20,11 @@
 package org.apache.fesod.sheet.analysis.v07.handlers;
 
 import java.util.Optional;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.constant.ExcelXmlConstants;
 import org.apache.fesod.sheet.context.xlsx.XlsxReadContext;
 import org.apache.fesod.sheet.enums.CellExtraTypeEnum;
 import org.apache.fesod.sheet.metadata.CellExtra;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
 import org.xml.sax.Attributes;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/MergeCellTagHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/MergeCellTagHandler.java
index 133d0cfe..1b53c328 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/MergeCellTagHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/MergeCellTagHandler.java
@@ -19,11 +19,11 @@
 
 package org.apache.fesod.sheet.analysis.v07.handlers;
 
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.constant.ExcelXmlConstants;
 import org.apache.fesod.sheet.context.xlsx.XlsxReadContext;
 import org.apache.fesod.sheet.enums.CellExtraTypeEnum;
 import org.apache.fesod.sheet.metadata.CellExtra;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.xml.sax.Attributes;
 
 /**
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/RowTagHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/RowTagHandler.java
index 4208f83a..84fb21cf 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/RowTagHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/analysis/v07/handlers/RowTagHandler.java
@@ -21,6 +21,7 @@ package org.apache.fesod.sheet.analysis.v07.handlers;
 
 import java.util.LinkedHashMap;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.fesod.common.util.PositionUtils;
 import org.apache.fesod.sheet.constant.ExcelXmlConstants;
 import org.apache.fesod.sheet.context.xlsx.XlsxReadContext;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
@@ -29,7 +30,6 @@ import org.apache.fesod.sheet.metadata.Cell;
 import org.apache.fesod.sheet.metadata.data.ReadCellData;
 import org.apache.fesod.sheet.read.metadata.holder.ReadRowHolder;
 import org.apache.fesod.sheet.read.metadata.holder.xlsx.XlsxReadSheetHolder;
-import org.apache.fesod.sheet.util.PositionUtils;
 import org.xml.sax.Attributes;
 
 /**
@@ -41,7 +41,7 @@ public class RowTagHandler extends AbstractXlsxTagHandler {
     @Override
     public void startElement(XlsxReadContext xlsxReadContext, String name, 
Attributes attributes) {
         XlsxReadSheetHolder xlsxReadSheetHolder = 
xlsxReadContext.xlsxReadSheetHolder();
-        int rowIndex = PositionUtils.getRowByRowTagt(
+        int rowIndex = PositionUtils.getRowByRowTag(
                 attributes.getValue(ExcelXmlConstants.ATTRIBUTE_R), 
xlsxReadSheetHolder.getRowIndex());
         Integer lastRowIndex = xlsxReadContext.readSheetHolder().getRowIndex();
         while (lastRowIndex + 1 < rowIndex) {
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/cache/Ehcache.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/cache/Ehcache.java
index 87b03884..5c030ea6 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/cache/Ehcache.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/cache/Ehcache.java
@@ -24,9 +24,9 @@ import java.util.ArrayList;
 import java.util.UUID;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.context.AnalysisContext;
 import org.apache.fesod.sheet.util.FileUtils;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.ehcache.CacheManager;
 import org.ehcache.config.CacheConfiguration;
 import org.ehcache.config.builders.CacheConfigurationBuilder;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/constant/BuiltinFormats.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/constant/BuiltinFormats.java
index 59b98c2a..68ac094a 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/constant/BuiltinFormats.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/constant/BuiltinFormats.java
@@ -21,8 +21,8 @@ package org.apache.fesod.sheet.constant;
 
 import java.util.Locale;
 import java.util.Map;
-import org.apache.fesod.sheet.util.MapUtils;
-import org.apache.fesod.sheet.util.StringUtils;
+import org.apache.fesod.common.util.MapUtils;
+import org.apache.fesod.common.util.StringUtils;
 
 /**
  * Excel's built-in format conversion.Currently only supports Chinese.
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/context/WriteContextImpl.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/context/WriteContextImpl.java
index aae38a62..27cd18e1 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/context/WriteContextImpl.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/context/WriteContextImpl.java
@@ -25,6 +25,8 @@ import java.io.OutputStream;
 import java.util.Map;
 import java.util.UUID;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.common.util.ListUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.enums.HeaderMergeStrategy;
 import org.apache.fesod.sheet.enums.WriteTypeEnum;
 import org.apache.fesod.sheet.exception.ExcelGenerateException;
@@ -36,9 +38,7 @@ import org.apache.fesod.sheet.support.ExcelTypeEnum;
 import org.apache.fesod.sheet.util.ClassUtils;
 import org.apache.fesod.sheet.util.DateUtils;
 import org.apache.fesod.sheet.util.FileUtils;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.apache.fesod.sheet.util.NumberDataFormatterUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.fesod.sheet.util.WorkBookUtil;
 import org.apache.fesod.sheet.util.WriteHandlerUtils;
 import org.apache.fesod.sheet.write.handler.context.CellWriteHandlerContext;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/ConverterKeyBuild.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/ConverterKeyBuild.java
index 7f793be3..9e08b3bc 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/ConverterKeyBuild.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/ConverterKeyBuild.java
@@ -24,8 +24,8 @@ import lombok.AllArgsConstructor;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
-import org.apache.fesod.sheet.util.MapUtils;
 
 /**
  * Converter unique key.Consider that you can just use class as the key.
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/DefaultConverterLoader.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/DefaultConverterLoader.java
index 3b8a144d..6bde5014 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/DefaultConverterLoader.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/DefaultConverterLoader.java
@@ -20,6 +20,7 @@
 package org.apache.fesod.sheet.converters;
 
 import java.util.Map;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.sheet.converters.ConverterKeyBuild.ConverterKey;
 import org.apache.fesod.sheet.converters.bigdecimal.BigDecimalBooleanConverter;
 import org.apache.fesod.sheet.converters.bigdecimal.BigDecimalNumberConverter;
@@ -66,7 +67,6 @@ import 
org.apache.fesod.sheet.converters.string.StringErrorConverter;
 import org.apache.fesod.sheet.converters.string.StringNumberConverter;
 import org.apache.fesod.sheet.converters.string.StringStringConverter;
 import org.apache.fesod.sheet.converters.url.UrlImageConverter;
-import org.apache.fesod.sheet.util.MapUtils;
 
 /**
  * Load default handler
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/inputstream/InputStreamImageConverter.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/inputstream/InputStreamImageConverter.java
index 3e9d02e3..2e0300fe 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/inputstream/InputStreamImageConverter.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/inputstream/InputStreamImageConverter.java
@@ -21,11 +21,11 @@ package org.apache.fesod.sheet.converters.inputstream;
 
 import java.io.IOException;
 import java.io.InputStream;
+import org.apache.fesod.common.util.IoUtils;
 import org.apache.fesod.sheet.converters.Converter;
 import org.apache.fesod.sheet.metadata.GlobalConfiguration;
 import org.apache.fesod.sheet.metadata.data.WriteCellData;
 import org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
-import org.apache.fesod.sheet.util.IoUtils;
 
 /**
  * File and image converter
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/string/StringNumberConverter.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/string/StringNumberConverter.java
index 89e6cb57..fc7ec969 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/string/StringNumberConverter.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/string/StringNumberConverter.java
@@ -20,6 +20,7 @@
 package org.apache.fesod.sheet.converters.string;
 
 import java.math.BigDecimal;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.converters.Converter;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
 import org.apache.fesod.sheet.metadata.GlobalConfiguration;
@@ -29,7 +30,6 @@ import 
org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
 import org.apache.fesod.sheet.util.DateUtils;
 import org.apache.fesod.sheet.util.NumberDataFormatterUtils;
 import org.apache.fesod.sheet.util.NumberUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 
 /**
  * String and number converter
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/url/UrlImageConverter.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/url/UrlImageConverter.java
index 78413b43..798ffa34 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/url/UrlImageConverter.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/converters/url/UrlImageConverter.java
@@ -23,11 +23,11 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.net.URLConnection;
+import org.apache.fesod.common.util.IoUtils;
 import org.apache.fesod.sheet.converters.Converter;
 import org.apache.fesod.sheet.metadata.GlobalConfiguration;
 import org.apache.fesod.sheet.metadata.data.WriteCellData;
 import org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
-import org.apache.fesod.sheet.util.IoUtils;
 
 /**
  * Url and image converter
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/enums/ByteOrderMarkEnum.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/enums/ByteOrderMarkEnum.java
index 8964ad9d..76c4d659 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/enums/ByteOrderMarkEnum.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/enums/ByteOrderMarkEnum.java
@@ -23,7 +23,7 @@ import java.nio.charset.Charset;
 import java.util.Map;
 import lombok.Getter;
 import org.apache.commons.io.ByteOrderMark;
-import org.apache.fesod.sheet.util.MapUtils;
+import org.apache.fesod.common.util.MapUtils;
 
 /**
  * byte order mark
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/enums/CellDataTypeEnum.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/enums/CellDataTypeEnum.java
index f389e0c1..14e80fe7 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/enums/CellDataTypeEnum.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/enums/CellDataTypeEnum.java
@@ -21,7 +21,7 @@ package org.apache.fesod.sheet.enums;
 
 import java.util.HashMap;
 import java.util.Map;
-import org.apache.fesod.sheet.util.StringUtils;
+import org.apache.fesod.common.util.StringUtils;
 
 /**
  * excel internal data type
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/AbstractParameterBuilder.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/AbstractParameterBuilder.java
index 32a24551..7e613674 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/AbstractParameterBuilder.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/AbstractParameterBuilder.java
@@ -22,9 +22,9 @@ package org.apache.fesod.sheet.metadata;
 import java.util.List;
 import java.util.Locale;
 import java.util.Objects;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.converters.Converter;
 import org.apache.fesod.sheet.enums.CacheLocationEnum;
-import org.apache.fesod.sheet.util.ListUtils;
 
 /**
  * ExcelBuilder
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/csv/CsvDataFormat.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/csv/CsvDataFormat.java
index c78a4ea0..f8dbfdf3 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/csv/CsvDataFormat.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/csv/CsvDataFormat.java
@@ -22,9 +22,9 @@ package org.apache.fesod.sheet.metadata.csv;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import org.apache.fesod.common.util.ListUtils;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.sheet.constant.BuiltinFormats;
-import org.apache.fesod.sheet.util.ListUtils;
-import org.apache.fesod.sheet.util.MapUtils;
 import org.apache.poi.ss.usermodel.DataFormat;
 
 /**
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/csv/CsvSheet.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/csv/CsvSheet.java
index c94a2ccb..75c4c541 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/csv/CsvSheet.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/csv/CsvSheet.java
@@ -31,14 +31,14 @@ import lombok.Getter;
 import lombok.Setter;
 import org.apache.commons.csv.CSVFormat;
 import org.apache.commons.csv.CSVPrinter;
+import org.apache.fesod.common.util.ListUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.constant.BuiltinFormats;
 import org.apache.fesod.sheet.enums.ByteOrderMarkEnum;
 import org.apache.fesod.sheet.enums.NumericCellTypeEnum;
 import org.apache.fesod.sheet.exception.ExcelGenerateException;
 import org.apache.fesod.sheet.util.DateUtils;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.apache.fesod.sheet.util.NumberDataFormatterUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.ss.usermodel.AutoFilter;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellRange;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/CellData.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/CellData.java
index b99881c1..6123021f 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/CellData.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/CellData.java
@@ -23,9 +23,9 @@ import java.math.BigDecimal;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
 import org.apache.fesod.sheet.metadata.AbstractCell;
-import org.apache.fesod.sheet.util.StringUtils;
 
 /**
  * Excel internal cell data.
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/DataFormatData.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/DataFormatData.java
index 6b89516c..238bb451 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/DataFormatData.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/DataFormatData.java
@@ -22,7 +22,7 @@ package org.apache.fesod.sheet.metadata.data;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
-import org.apache.fesod.sheet.util.StringUtils;
+import org.apache.fesod.common.util.StringUtils;
 
 /**
  * data format
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/RichTextStringData.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/RichTextStringData.java
index caadfa12..dd85a6be 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/RichTextStringData.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/RichTextStringData.java
@@ -25,7 +25,7 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
-import org.apache.fesod.sheet.util.ListUtils;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.write.metadata.style.WriteFont;
 
 /**
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/WriteCellData.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/WriteCellData.java
index 49112a1a..14b81536 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/WriteCellData.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/data/WriteCellData.java
@@ -28,8 +28,8 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.apache.fesod.sheet.write.metadata.style.WriteCellStyle;
 import org.apache.poi.ss.usermodel.CellStyle;
 
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/DateTimeFormatProperty.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/DateTimeFormatProperty.java
index e042caf8..cab089b8 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/DateTimeFormatProperty.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/DateTimeFormatProperty.java
@@ -22,8 +22,8 @@ package org.apache.fesod.sheet.metadata.property;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.fesod.common.util.BooleanUtils;
 import org.apache.fesod.sheet.annotation.format.DateTimeFormat;
-import org.apache.fesod.sheet.util.BooleanUtils;
 
 /**
  * Configuration from annotations
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/ExcelHeadProperty.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/ExcelHeadProperty.java
index fcdba5f4..080a361a 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/ExcelHeadProperty.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/ExcelHeadProperty.java
@@ -28,13 +28,13 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.enums.HeadKindEnum;
 import org.apache.fesod.sheet.metadata.ConfigurationHolder;
 import org.apache.fesod.sheet.metadata.FieldCache;
 import org.apache.fesod.sheet.metadata.FieldWrapper;
 import org.apache.fesod.sheet.metadata.Head;
 import org.apache.fesod.sheet.util.ClassUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.fesod.sheet.write.metadata.holder.AbstractWriteHolder;
 
 /**
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/FontProperty.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/FontProperty.java
index 22033571..adec3de9 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/FontProperty.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/metadata/property/FontProperty.java
@@ -22,9 +22,9 @@ package org.apache.fesod.sheet.metadata.property;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.annotation.write.style.ContentFontStyle;
 import org.apache.fesod.sheet.annotation.write.style.HeadFontStyle;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.common.usermodel.fonts.FontCharset;
 import org.apache.poi.hssf.usermodel.HSSFPalette;
 import org.apache.poi.ss.usermodel.Font;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/builder/AbstractExcelReaderParameterBuilder.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/builder/AbstractExcelReaderParameterBuilder.java
index be21f6eb..43f399cc 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/builder/AbstractExcelReaderParameterBuilder.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/builder/AbstractExcelReaderParameterBuilder.java
@@ -20,10 +20,10 @@
 package org.apache.fesod.sheet.read.builder;
 
 import java.util.Objects;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.metadata.AbstractParameterBuilder;
 import org.apache.fesod.sheet.read.listener.ReadListener;
 import org.apache.fesod.sheet.read.metadata.ReadBasicParameter;
-import org.apache.fesod.sheet.util.ListUtils;
 
 /**
  * Build ExcelBuilder
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/listener/ModelBuildEventListener.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/listener/ModelBuildEventListener.java
index 5d60b913..e4804d36 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/listener/ModelBuildEventListener.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/listener/ModelBuildEventListener.java
@@ -23,6 +23,7 @@ import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Map;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.shaded.cglib.beans.BeanMap;
 import org.apache.fesod.sheet.context.AnalysisContext;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
@@ -38,7 +39,6 @@ import org.apache.fesod.sheet.util.BeanMapUtils;
 import org.apache.fesod.sheet.util.ClassUtils;
 import org.apache.fesod.sheet.util.ConverterUtils;
 import org.apache.fesod.sheet.util.DateUtils;
-import org.apache.fesod.sheet.util.MapUtils;
 
 /**
  * Convert to the object the user needs
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/listener/PageReadListener.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/listener/PageReadListener.java
index b1cf6fc6..bdbce76b 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/listener/PageReadListener.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/listener/PageReadListener.java
@@ -22,8 +22,8 @@ package org.apache.fesod.sheet.read.listener;
 import java.util.List;
 import java.util.function.Consumer;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.context.AnalysisContext;
-import org.apache.fesod.sheet.util.ListUtils;
 
 /**
  * page read listener
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/metadata/holder/AbstractReadHolder.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/metadata/holder/AbstractReadHolder.java
index 779ec0c0..3ee967d2 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/metadata/holder/AbstractReadHolder.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/metadata/holder/AbstractReadHolder.java
@@ -25,6 +25,7 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.converters.Converter;
 import org.apache.fesod.sheet.converters.ConverterKeyBuild;
 import org.apache.fesod.sheet.converters.DefaultConverterLoader;
@@ -35,7 +36,6 @@ import org.apache.fesod.sheet.read.listener.ReadListener;
 import org.apache.fesod.sheet.read.metadata.ReadBasicParameter;
 import org.apache.fesod.sheet.read.metadata.ReadWorkbook;
 import org.apache.fesod.sheet.read.metadata.property.ExcelReadHeadProperty;
-import org.apache.fesod.sheet.util.ListUtils;
 
 /**
  * Read Holder
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/metadata/holder/xlsx/XlsxReadWorkbookHolder.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/metadata/holder/xlsx/XlsxReadWorkbookHolder.java
index 5a576760..3ea76c72 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/metadata/holder/xlsx/XlsxReadWorkbookHolder.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/metadata/holder/xlsx/XlsxReadWorkbookHolder.java
@@ -24,12 +24,12 @@ import javax.xml.parsers.SAXParserFactory;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.sheet.constant.BuiltinFormats;
 import org.apache.fesod.sheet.metadata.data.DataFormatData;
 import org.apache.fesod.sheet.read.metadata.ReadWorkbook;
 import org.apache.fesod.sheet.read.metadata.holder.ReadWorkbookHolder;
 import org.apache.fesod.sheet.support.ExcelTypeEnum;
-import org.apache.fesod.sheet.util.MapUtils;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
 import org.apache.poi.xssf.model.StylesTable;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/processor/DefaultAnalysisEventProcessor.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/processor/DefaultAnalysisEventProcessor.java
index 6996a08b..d6f6abf7 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/processor/DefaultAnalysisEventProcessor.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/read/processor/DefaultAnalysisEventProcessor.java
@@ -24,6 +24,8 @@ import java.util.List;
 import java.util.Map;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.fesod.common.util.BooleanUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.context.AnalysisContext;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
 import org.apache.fesod.sheet.enums.HeadKindEnum;
@@ -36,9 +38,7 @@ import org.apache.fesod.sheet.read.listener.ReadListener;
 import org.apache.fesod.sheet.read.metadata.holder.ReadRowHolder;
 import org.apache.fesod.sheet.read.metadata.holder.ReadSheetHolder;
 import org.apache.fesod.sheet.read.metadata.property.ExcelReadHeadProperty;
-import org.apache.fesod.sheet.util.BooleanUtils;
 import org.apache.fesod.sheet.util.ConverterUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 
 /**
  * Analysis event
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/support/ExcelTypeEnum.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/support/ExcelTypeEnum.java
index c795d2c1..4a1f76f1 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/support/ExcelTypeEnum.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/support/ExcelTypeEnum.java
@@ -24,10 +24,10 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import lombok.Getter;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.exception.ExcelAnalysisException;
 import org.apache.fesod.sheet.exception.ExcelCommonException;
 import org.apache.fesod.sheet.read.metadata.ReadWorkbook;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.EmptyFileException;
 import org.apache.poi.util.IOUtils;
 
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/BooleanUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/BooleanUtils.java
deleted file mode 100644
index 0fa18d5e..00000000
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/BooleanUtils.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-public class BooleanUtils {
-
-    private static final String TRUE_NUMBER = "1";
-
-    private BooleanUtils() {}
-
-    /**
-     * String to boolean
-     *
-     * @param str
-     * @return
-     */
-    public static Boolean valueOf(String str) {
-        if (TRUE_NUMBER.equals(str)) {
-            return Boolean.TRUE;
-        } else {
-            return Boolean.FALSE;
-        }
-    }
-
-    // boolean Boolean methods
-    // -----------------------------------------------------------------------
-
-    /**
-     * <p>Checks if a {@code Boolean} value is {@code true},
-     * handling {@code null} by returning {@code false}.</p>
-     *
-     * <pre>
-     *   BooleanUtils.isTrue(Boolean.TRUE)  = true
-     *   BooleanUtils.isTrue(Boolean.FALSE) = false
-     *   BooleanUtils.isTrue(null)          = false
-     * </pre>
-     *
-     * @param bool the boolean to check, null returns {@code false}
-     * @return {@code true} only if the input is non-null and true
-     */
-    public static boolean isTrue(final Boolean bool) {
-        return Boolean.TRUE.equals(bool);
-    }
-
-    /**
-     * <p>Checks if a {@code Boolean} value is <i>not</i> {@code true},
-     * handling {@code null} by returning {@code true}.</p>
-     *
-     * <pre>
-     *   BooleanUtils.isNotTrue(Boolean.TRUE)  = false
-     *   BooleanUtils.isNotTrue(Boolean.FALSE) = true
-     *   BooleanUtils.isNotTrue(null)          = true
-     * </pre>
-     *
-     * @param bool the boolean to check, null returns {@code true}
-     * @return {@code true} if the input is null or false
-     */
-    public static boolean isNotTrue(final Boolean bool) {
-        return !isTrue(bool);
-    }
-
-    /**
-     * <p>Checks if a {@code Boolean} value is {@code false},
-     * handling {@code null} by returning {@code false}.</p>
-     *
-     * <pre>
-     *   BooleanUtils.isFalse(Boolean.TRUE)  = false
-     *   BooleanUtils.isFalse(Boolean.FALSE) = true
-     *   BooleanUtils.isFalse(null)          = false
-     * </pre>
-     *
-     * @param bool the boolean to check, null returns {@code false}
-     * @return {@code true} only if the input is non-null and false
-     */
-    public static boolean isFalse(final Boolean bool) {
-        return Boolean.FALSE.equals(bool);
-    }
-
-    /**
-     * <p>Checks if a {@code Boolean} value is <i>not</i> {@code false},
-     * handling {@code null} by returning {@code true}.</p>
-     *
-     * <pre>
-     *   BooleanUtils.isNotFalse(Boolean.TRUE)  = true
-     *   BooleanUtils.isNotFalse(Boolean.FALSE) = false
-     *   BooleanUtils.isNotFalse(null)          = true
-     * </pre>
-     *
-     * @param bool the boolean to check, null returns {@code true}
-     * @return {@code true} if the input is null or true
-     */
-    public static boolean isNotFalse(final Boolean bool) {
-        return !isFalse(bool);
-    }
-}
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ClassUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ClassUtils.java
index 0ce6247f..9ba01307 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ClassUtils.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ClassUtils.java
@@ -39,6 +39,8 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.ListUtils;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.shaded.cglib.beans.BeanMap;
 import org.apache.fesod.sheet.annotation.ExcelIgnore;
 import org.apache.fesod.sheet.annotation.ExcelIgnoreUnannotated;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ConverterUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ConverterUtils.java
index e1edbf66..72846ebe 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ConverterUtils.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ConverterUtils.java
@@ -23,6 +23,7 @@ import java.lang.reflect.Field;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.Map;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.sheet.context.AnalysisContext;
 import org.apache.fesod.sheet.converters.Converter;
 import org.apache.fesod.sheet.converters.ConverterKeyBuild;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/DateUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/DateUtils.java
index 4086bc2b..ecd91596 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/DateUtils.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/DateUtils.java
@@ -33,6 +33,9 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
 import java.util.regex.Pattern;
+import org.apache.fesod.common.util.BooleanUtils;
+import org.apache.fesod.common.util.MapUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.poi.ss.usermodel.DateUtil;
 import org.apache.poi.util.LocaleUtil;
 
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/FieldUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/FieldUtils.java
index 24281f6f..d2e4b05d 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/FieldUtils.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/FieldUtils.java
@@ -22,6 +22,8 @@ package org.apache.fesod.sheet.util;
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.util.Map;
+import org.apache.fesod.common.util.MemberUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.shaded.cglib.beans.BeanMap;
 import org.apache.fesod.sheet.metadata.NullObject;
 
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/FileUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/FileUtils.java
index b8931b45..465509db 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/FileUtils.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/FileUtils.java
@@ -27,6 +27,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.UUID;
+import org.apache.fesod.common.util.IoUtils;
 import org.apache.fesod.sheet.exception.ExcelAnalysisException;
 import org.apache.fesod.sheet.exception.ExcelCommonException;
 import org.apache.poi.util.TempFile;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/IntUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/IntUtils.java
deleted file mode 100644
index ea799132..00000000
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/IntUtils.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-/**
- * Int utils
- *
- *
- **/
-public class IntUtils {
-    private IntUtils() {}
-
-    /**
-     * The largest power of two that can be represented as an {@code int}.
-     */
-    public static final int MAX_POWER_OF_TWO = 1 << (Integer.SIZE - 2);
-
-    /**
-     * Returns the {@code int} nearest in value to {@code value}.
-     *
-     * @param value any {@code long} value
-     * @return the same value cast to {@code int} if it is in the range of the 
{@code int} type,
-     * {@link Integer#MAX_VALUE} if it is too large, or {@link 
Integer#MIN_VALUE} if it is too
-     * small
-     */
-    public static int saturatedCast(long value) {
-        if (value > Integer.MAX_VALUE) {
-            return Integer.MAX_VALUE;
-        }
-        if (value < Integer.MIN_VALUE) {
-            return Integer.MIN_VALUE;
-        }
-        return (int) value;
-    }
-}
diff --git a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/IoUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/IoUtils.java
deleted file mode 100644
index b2dbdcba..00000000
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/IoUtils.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * IO Utils
- *
- *
- */
-public class IoUtils {
-    public static final int EOF = -1;
-    /**
-     * The default buffer size ({@value}) to use for
-     */
-    private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
-
-    private IoUtils() {}
-
-    /**
-     * Gets the contents of an InputStream as a byte[].
-     *
-     * @param input
-     * @return
-     * @throws IOException
-     */
-    public static byte[] toByteArray(final InputStream input) throws 
IOException {
-        final ByteArrayOutputStream output = new ByteArrayOutputStream();
-        try {
-            copy(input, output);
-            return output.toByteArray();
-        } finally {
-            output.toByteArray();
-        }
-    }
-
-    /**
-     * Gets the contents of an InputStream as a byte[].
-     *
-     * @param input
-     * @param size
-     * @return
-     * @throws IOException
-     */
-    public static byte[] toByteArray(final InputStream input, final int size) 
throws IOException {
-        if (size < 0) {
-            throw new IllegalArgumentException("Size must be equal or greater 
than zero: " + size);
-        }
-        if (size == 0) {
-            return new byte[0];
-        }
-        final byte[] data = new byte[size];
-        int offset = 0;
-        int read;
-        while (offset < size && (read = input.read(data, offset, size - 
offset)) != EOF) {
-            offset += read;
-        }
-        if (offset != size) {
-            throw new IOException("Unexpected read size. current: " + offset + 
", expected: " + size);
-        }
-        return data;
-    }
-
-    /**
-     * Copies bytes
-     *
-     * @param input
-     * @param output
-     * @return
-     * @throws IOException
-     */
-    public static int copy(final InputStream input, final OutputStream output) 
throws IOException {
-        long count = 0;
-        int n;
-        byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
-        while (EOF != (n = input.read(buffer))) {
-            output.write(buffer, 0, n);
-            count += n;
-        }
-        if (count > Integer.MAX_VALUE) {
-            return -1;
-        }
-        return (int) count;
-    }
-}
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ListUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ListUtils.java
deleted file mode 100644
index ce2fe8c6..00000000
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/ListUtils.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import lombok.NonNull;
-import org.apache.commons.compress.utils.Iterators;
-
-public class ListUtils {
-    private ListUtils() {}
-
-    /**
-     * Creates a <i>mutable</i>, empty {@code ArrayList} instance (for Java 6 
and earlier).
-     *
-     * <p><b>Note for Java 7 and later:</b> this method is now unnecessary and 
should be treated as
-     * deprecated. Instead, use the {@code ArrayList} {@linkplain 
ArrayList#ArrayList() constructor}
-     * directly, taking advantage of the new <a 
href="http://goo.gl/iz2Wi";>"diamond" syntax</a>.
-     */
-    public static <E> ArrayList<E> newArrayList() {
-        return new ArrayList<>();
-    }
-
-    /**
-     * Creates a <i>mutable</i> {@code ArrayList} instance containing the 
given elements.
-     *
-     */
-    public static <E> ArrayList<E> newArrayList(E... elements) {
-        checkNotNull(elements);
-        // Avoid integer overflow when a large array is passed in
-        int capacity = computeArrayListCapacity(elements.length);
-        ArrayList<E> list = new ArrayList<>(capacity);
-        Collections.addAll(list, elements);
-        return list;
-    }
-
-    /**
-     * Creates a <i>mutable</i> {@code ArrayList} instance containing the 
given elements; a very thin
-     * shortcut for creating an empty list and then calling {@link 
Iterators#addAll}.
-     *
-     */
-    public static <E> ArrayList<E> newArrayList(Iterator<? extends E> 
elements) {
-        ArrayList<E> list = newArrayList();
-        Iterators.addAll(list, elements);
-        return list;
-    }
-
-    /**
-     * Creates a <i>mutable</i> {@code ArrayList} instance containing the 
given elements;
-     *
-     *
-     * <p><b>Note for Java 7 and later:</b> if {@code elements} is a {@link 
Collection}, you don't
-     * need this method. Use the {@code ArrayList} {@linkplain 
ArrayList#ArrayList(Collection)
-     * constructor} directly, taking advantage of the new <a 
href="http://goo.gl/iz2Wi";>"diamond"
-     * syntax</a>.
-     */
-    public static <E> ArrayList<E> newArrayList(Iterable<? extends E> 
elements) {
-        checkNotNull(elements); // for GWT
-        // Let ArrayList's sizing logic work, if possible
-        return (elements instanceof Collection)
-                ? new ArrayList<>((Collection<? extends E>) elements)
-                : newArrayList(elements.iterator());
-    }
-
-    /**
-     * Creates an {@code ArrayList} instance backed by an array with the 
specified initial size;
-     * simply delegates to {@link ArrayList#ArrayList(int)}.
-     *
-     * <p><b>Note for Java 7 and later:</b> this method is now unnecessary and 
should be treated as
-     * deprecated. Instead, use {@code new }{@link ArrayList#ArrayList(int) 
ArrayList}{@code <>(int)}
-     * directly, taking advantage of the new <a 
href="http://goo.gl/iz2Wi";>"diamond" syntax</a>.
-     * (Unlike here, there is no risk of overload ambiguity, since the {@code 
ArrayList} constructors
-     * very wisely did not accept varargs.)
-     *
-     * @param initialArraySize the exact size of the initial backing array for 
the returned array list
-     *                         ({@code ArrayList} documentation calls this 
value the "capacity")
-     * @return a new, empty {@code ArrayList} which is guaranteed not to 
resize itself unless its size
-     * reaches {@code initialArraySize + 1}
-     * @throws IllegalArgumentException if {@code initialArraySize} is negative
-     */
-    public static <E> ArrayList<E> newArrayListWithCapacity(int 
initialArraySize) {
-        checkNonnegative(initialArraySize, "initialArraySize");
-        return new ArrayList<>(initialArraySize);
-    }
-
-    /**
-     * Creates an {@code ArrayList} instance to hold {@code estimatedSize} 
elements, <i>plus</i> an
-     * unspecified amount of padding; you almost certainly mean to call {@link
-     * #newArrayListWithCapacity} (see that method for further advice on 
usage).
-     *
-     * <p><b>Note:</b> This method will soon be deprecated. Even in the rare 
case that you do want
-     * some amount of padding, it's best if you choose your desired amount 
explicitly.
-     *
-     * @param estimatedSize an estimate of the eventual {@link List#size()} of 
the new list
-     * @return a new, empty {@code ArrayList}, sized appropriately to hold the 
estimated number of
-     * elements
-     * @throws IllegalArgumentException if {@code estimatedSize} is negative
-     */
-    public static <E> ArrayList<E> newArrayListWithExpectedSize(int 
estimatedSize) {
-        return new ArrayList<>(computeArrayListCapacity(estimatedSize));
-    }
-
-    static int computeArrayListCapacity(int arraySize) {
-        checkNonnegative(arraySize, "arraySize");
-        return IntUtils.saturatedCast(5L + arraySize + (arraySize / 10));
-    }
-
-    static int checkNonnegative(int value, String name) {
-        if (value < 0) {
-            throw new IllegalArgumentException(name + " cannot be negative but 
was: " + value);
-        }
-        return value;
-    }
-
-    /**
-     * Ensures that an object reference passed as a parameter to the calling 
method is not null.
-     *
-     * @param reference an object reference
-     * @return the non-null reference that was validated
-     * @throws NullPointerException if {@code reference} is null
-     */
-    public static <T extends @NonNull Object> T checkNotNull(T reference) {
-        if (reference == null) {
-            throw new NullPointerException();
-        }
-        return reference;
-    }
-}
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/MapUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/MapUtils.java
deleted file mode 100644
index 779472a4..00000000
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/MapUtils.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.TreeMap;
-
-public class MapUtils {
-
-    private MapUtils() {}
-
-    /**
-     * Creates a <i>mutable</i>, empty {@code HashMap} instance.
-     *
-     * <p><b>Note:</b> if mutability is not required, use ImmutableMap.of() 
instead.
-     *
-     * <p><b>Note:</b> if {@code K} is an {@code enum} type, use newEnumMap 
instead.
-     *
-     * <p><b>Note for Java 7 and later:</b> this method is now unnecessary and 
should be treated as
-     * deprecated. Instead, use the {@code HashMap} constructor directly, 
taking advantage of the new
-     * <a href="http://goo.gl/iz2Wi";>"diamond" syntax</a>.
-     *
-     * @return a new, empty {@code HashMap}
-     */
-    public static <K, V> HashMap<K, V> newHashMap() {
-        return new HashMap<>(16);
-    }
-
-    /**
-     * Creates a <i>mutable</i>, empty {@code TreeMap} instance using the 
natural ordering of its
-     * elements.
-     *
-     * <p><b>Note:</b> if mutability is not required, use 
ImmutableSortedMap.of() instead.
-     *
-     * <p><b>Note for Java 7 and later:</b> this method is now unnecessary and 
should be treated as
-     * deprecated. Instead, use the {@code TreeMap} constructor directly, 
taking advantage of the new
-     * <a href="http://goo.gl/iz2Wi";>"diamond" syntax</a>.
-     *
-     * @return a new, empty {@code TreeMap}
-     */
-    public static <K extends Comparable, V> TreeMap<K, V> newTreeMap() {
-        return new TreeMap<>();
-    }
-
-    /**
-     * Creates a {@code HashMap} instance, with a high enough "initial 
capacity" that it <i>should</i>
-     * hold {@code expectedSize} elements without growth. This behavior cannot 
be broadly guaranteed,
-     * but it is observed to be true for OpenJDK 1.7. It also can't be 
guaranteed that the method
-     * isn't inadvertently <i>oversizing</i> the returned map.
-     *
-     * @param expectedSize the number of entries you expect to add to the 
returned map
-     * @return a new, empty {@code HashMap} with enough capacity to hold 
{@code expectedSize} entries
-     * without resizing
-     * @throws IllegalArgumentException if {@code expectedSize} is negative
-     */
-    public static <K, V> HashMap<K, V> newHashMapWithExpectedSize(int 
expectedSize) {
-        return new HashMap<>(capacity(expectedSize));
-    }
-
-    /**
-     * Creates a <i>mutable</i>, empty, insertion-ordered {@code 
LinkedHashMap} instance.
-     *
-     * <p><b>Note:</b> if mutability is not required, use  ImmutableMap.of() 
instead.
-     *
-     * <p><b>Note for Java 7 and later:</b> this method is now unnecessary and 
should be treated as
-     * deprecated. Instead, use the {@code LinkedHashMap} constructor 
directly, taking advantage of
-     * the new <a href="http://goo.gl/iz2Wi";>"diamond" syntax</a>.
-     *
-     * @return a new, empty {@code LinkedHashMap}
-     */
-    public static <K, V> LinkedHashMap<K, V> newLinkedHashMap() {
-        return new LinkedHashMap<>();
-    }
-
-    /**
-     * Creates a {@code LinkedHashMap} instance, with a high enough "initial 
capacity" that it
-     * <i>should</i> hold {@code expectedSize} elements without growth. This 
behavior cannot be
-     * broadly guaranteed, but it is observed to be true for OpenJDK 1.7. It 
also can't be guaranteed
-     * that the method isn't inadvertently <i>oversizing</i> the returned map.
-     *
-     * @param expectedSize the number of entries you expect to add to the 
returned map
-     * @return a new, empty {@code LinkedHashMap} with enough capacity to hold 
{@code expectedSize}
-     * entries without resizing
-     * @throws IllegalArgumentException if {@code expectedSize} is negative
-     */
-    public static <K, V> LinkedHashMap<K, V> 
newLinkedHashMapWithExpectedSize(int expectedSize) {
-        return new LinkedHashMap<>(capacity(expectedSize));
-    }
-
-    /**
-     * Returns a capacity that is sufficient to keep the map from being 
resized as long as it grows no
-     * larger than expectedSize and the load factor is ≥ its default (0.75).
-     */
-    static int capacity(int expectedSize) {
-        if (expectedSize < 3) {
-            return expectedSize + 1;
-        }
-        if (expectedSize < IntUtils.MAX_POWER_OF_TWO) {
-            // This is the calculation used in JDK8 to resize when a putAll
-            // happens; it seems to be the most conservative calculation we
-            // can make.  0.75 is the default load factor.
-            return (int) ((float) expectedSize / 0.75F + 1.0F);
-        }
-        return Integer.MAX_VALUE;
-    }
-}
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/MemberUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/MemberUtils.java
deleted file mode 100644
index 85af6920..00000000
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/MemberUtils.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.Member;
-import java.lang.reflect.Modifier;
-
-public class MemberUtils {
-
-    private static final int ACCESS_TEST = Modifier.PUBLIC | 
Modifier.PROTECTED | Modifier.PRIVATE;
-
-    /**
-     * XXX Default access superclass workaround.
-     *
-     * When a {@code public} class has a default access superclass with {@code 
public} members,
-     * these members are accessible. Calling them from compiled code works 
fine.
-     * Unfortunately, on some JVMs, using reflection to invoke these members
-     * seems to (wrongly) prevent access even when the modifier is {@code 
public}.
-     * Calling {@code setAccessible(true)} solves the problem but will only 
work from
-     * sufficiently privileged code. Better workarounds would be gratefully
-     * accepted.
-     * @param o the AccessibleObject to set as accessible
-     * @return a boolean indicating whether the accessibility of the object 
was set to true.
-     */
-    static boolean setAccessibleWorkaround(final AccessibleObject o) {
-        if (o == null || o.isAccessible()) {
-            return false;
-        }
-        final Member m = (Member) o;
-        if (!o.isAccessible()
-                && Modifier.isPublic(m.getModifiers())
-                && isPackageAccess(m.getDeclaringClass().getModifiers())) {
-            try {
-                o.setAccessible(true);
-                return true;
-            } catch (final SecurityException e) { // NOPMD
-                // ignore in favor of subsequent IllegalAccessException
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Returns whether a given set of modifiers implies package access.
-     * @param modifiers to test
-     * @return {@code true} unless {@code package}/{@code protected}/{@code 
private} modifier detected
-     */
-    static boolean isPackageAccess(final int modifiers) {
-        return (modifiers & ACCESS_TEST) == 0;
-    }
-}
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/NumberUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/NumberUtils.java
index 19a1984f..6cf48224 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/NumberUtils.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/NumberUtils.java
@@ -23,6 +23,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.ParseException;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.metadata.data.WriteCellData;
 import org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
 
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/PositionUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/PositionUtils.java
deleted file mode 100644
index a69ed9dd..00000000
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/PositionUtils.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-import java.util.regex.Pattern;
-
-/**
- *
- */
-public class PositionUtils {
-
-    private static final Pattern CELL_REF_PATTERN =
-            Pattern.compile("(\\$?[A-Z]+)?" + "(\\$?[0-9]+)?", 
Pattern.CASE_INSENSITIVE);
-    private static final char SHEET_NAME_DELIMITER = '!';
-    private static final char REDUNDANT_CHARACTERS = '$';
-
-    private PositionUtils() {}
-
-    public static int getRowByRowTagt(String rowTagt, Integer before) {
-        int row;
-        if (rowTagt != null) {
-            row = Integer.parseInt(rowTagt) - 1;
-            return row;
-        } else {
-            if (before == null) {
-                before = -1;
-            }
-            return before + 1;
-        }
-    }
-
-    public static int getRow(String currentCellIndex) {
-        if (currentCellIndex == null) {
-            return -1;
-        }
-        int firstNumber = currentCellIndex.length() - 1;
-        for (; firstNumber >= 0; firstNumber--) {
-            char c = currentCellIndex.charAt(firstNumber);
-            if (c < '0' || c > '9') {
-                break;
-            }
-        }
-        return Integer.parseUnsignedInt(currentCellIndex.substring(firstNumber 
+ 1)) - 1;
-    }
-
-    public static int getCol(String currentCellIndex, Integer before) {
-        if (currentCellIndex == null) {
-            if (before == null) {
-                before = -1;
-            }
-            return before + 1;
-        }
-        int firstNumber = currentCellIndex.charAt(0) == REDUNDANT_CHARACTERS ? 
1 : 0;
-        int col = 0;
-        for (; firstNumber < currentCellIndex.length(); firstNumber++) {
-            char c = currentCellIndex.charAt(firstNumber);
-            boolean isNotLetter = c == REDUNDANT_CHARACTERS || (c >= '0' && c 
<= '9');
-            if (isNotLetter) {
-                break;
-            }
-            col = col * 26 + Character.toUpperCase(c) - 'A' + 1;
-        }
-        return col - 1;
-    }
-}
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/SheetUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/SheetUtils.java
index d7d75a75..1bd7cbdd 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/SheetUtils.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/SheetUtils.java
@@ -20,6 +20,7 @@
 package org.apache.fesod.sheet.util;
 
 import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.context.AnalysisContext;
 import org.apache.fesod.sheet.read.metadata.ReadSheet;
 import org.apache.fesod.sheet.read.metadata.holder.ReadWorkbookHolder;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/StringUtils.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/StringUtils.java
deleted file mode 100644
index 42ed9d99..00000000
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/StringUtils.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-public class StringUtils {
-    private StringUtils() {}
-
-    /**
-     * A String for a space character.
-     */
-    public static final String SPACE = " ";
-
-    /**
-     * The empty String {@code ""}.
-     */
-    public static final String EMPTY = "";
-
-    /**
-     * <p>Checks if a CharSequence is empty ("") or null.</p>
-     *
-     * <pre>
-     * StringUtils.isEmpty(null)      = true
-     * StringUtils.isEmpty("")        = true
-     * StringUtils.isEmpty(" ")       = false
-     * StringUtils.isEmpty("bob")     = false
-     * StringUtils.isEmpty("  bob  ") = false
-     * </pre>
-     *
-     * <p>NOTE: This method changed in Lang version 2.0.
-     * It no longer trims the CharSequence.
-     * That functionality is available in isBlank().</p>
-     *
-     * @param cs the CharSequence to check, may be null
-     * @return {@code true} if the CharSequence is empty or null
-     */
-    public static boolean isEmpty(final CharSequence cs) {
-        return cs == null || cs.length() == 0;
-    }
-
-    /**
-     * <p>Checks if a CharSequence is empty (""), null or whitespace only.</p>
-     *
-     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
-     *
-     * <pre>
-     * StringUtils.isBlank(null)      = true
-     * StringUtils.isBlank("")        = true
-     * StringUtils.isBlank(" ")       = true
-     * StringUtils.isBlank("bob")     = false
-     * StringUtils.isBlank("  bob  ") = false
-     * </pre>
-     *
-     * @param cs the CharSequence to check, may be null
-     * @return {@code true} if the CharSequence is null, empty or whitespace 
only
-     */
-    public static boolean isBlank(final CharSequence cs) {
-        int strLen;
-        if (cs == null || (strLen = cs.length()) == 0) {
-            return true;
-        }
-        for (int i = 0; i < strLen; i++) {
-            if (!Character.isWhitespace(cs.charAt(i))) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * <p>Checks if a CharSequence is not empty (""), not null and not 
whitespace only.</p>
-     *
-     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
-     *
-     * <pre>
-     * StringUtils.isNotBlank(null)      = false
-     * StringUtils.isNotBlank("")        = false
-     * StringUtils.isNotBlank(" ")       = false
-     * StringUtils.isNotBlank("bob")     = true
-     * StringUtils.isNotBlank("  bob  ") = true
-     * </pre>
-     *
-     * @param cs the CharSequence to check, may be null
-     * @return {@code true} if the CharSequence is
-     * not empty and not null and not whitespace only
-     */
-    public static boolean isNotBlank(final CharSequence cs) {
-        return !isBlank(cs);
-    }
-
-    /**
-     * <p>Compares two CharSequences, returning {@code true} if they represent
-     * equal sequences of characters.</p>
-     *
-     * <p>{@code null}s are handled without exceptions. Two {@code null}
-     * references are considered to be equal. The comparison is case 
sensitive.</p>
-     *
-     * <pre>
-     * StringUtils.equals(null, null)   = true
-     * StringUtils.equals(null, "abc")  = false
-     * StringUtils.equals("abc", null)  = false
-     * StringUtils.equals("abc", "abc") = true
-     * StringUtils.equals("abc", "ABC") = false
-     * </pre>
-     *
-     * @param cs1 the first CharSequence, may be {@code null}
-     * @param cs2 the second CharSequence, may be {@code null}
-     * @return {@code true} if the CharSequences are equal (case-sensitive), 
or both {@code null}
-     * @see Object#equals(Object)
-     */
-    public static boolean equals(final CharSequence cs1, final CharSequence 
cs2) {
-        if (cs1 == cs2) {
-            return true;
-        }
-        if (cs1 == null || cs2 == null) {
-            return false;
-        }
-        if (cs1.length() != cs2.length()) {
-            return false;
-        }
-        if (cs1 instanceof String && cs2 instanceof String) {
-            return cs1.equals(cs2);
-        }
-        return regionMatches(cs1, false, 0, cs2, 0, cs1.length());
-    }
-
-    /**
-     * Green implementation of regionMatches.
-     *
-     * @param cs         the {@code CharSequence} to be processed
-     * @param ignoreCase whether or not to be case insensitive
-     * @param thisStart  the index to start on the {@code cs} CharSequence
-     * @param substring  the {@code CharSequence} to be looked for
-     * @param start      the index to start on the {@code substring} 
CharSequence
-     * @param length     character length of the region
-     * @return whether the region matched
-     */
-    public static boolean regionMatches(
-            final CharSequence cs,
-            final boolean ignoreCase,
-            final int thisStart,
-            final CharSequence substring,
-            final int start,
-            final int length) {
-        if (cs instanceof String && substring instanceof String) {
-            return ((String) cs).regionMatches(ignoreCase, thisStart, (String) 
substring, start, length);
-        }
-        int index1 = thisStart;
-        int index2 = start;
-        int tmpLen = length;
-
-        // Extract these first so we detect NPEs the same as the 
java.lang.String version
-        final int srcLen = cs.length() - thisStart;
-        final int otherLen = substring.length() - start;
-
-        // Check for invalid parameters
-        if (thisStart < 0 || start < 0 || length < 0) {
-            return false;
-        }
-
-        // Check that the regions are long enough
-        if (srcLen < length || otherLen < length) {
-            return false;
-        }
-
-        while (tmpLen-- > 0) {
-            final char c1 = cs.charAt(index1++);
-            final char c2 = substring.charAt(index2++);
-
-            if (c1 == c2) {
-                continue;
-            }
-
-            if (!ignoreCase) {
-                return false;
-            }
-
-            // The same check as in String.regionMatches():
-            if (Character.toUpperCase(c1) != Character.toUpperCase(c2)
-                    && Character.toLowerCase(c1) != Character.toLowerCase(c2)) 
{
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * <p>Checks if the CharSequence contains only Unicode digits.
-     * A decimal point is not a Unicode digit and returns false.</p>
-     *
-     * <p>{@code null} will return {@code false}.
-     * An empty CharSequence (length()=0) will return {@code false}.</p>
-     *
-     * <p>Note that the method does not allow for a leading sign, either 
positive or negative.
-     * Also, if a String passes the numeric test, it may still generate a 
NumberFormatException
-     * when parsed by Integer.parseInt or Long.parseLong, e.g. if the value is 
outside the range
-     * for int or long respectively.</p>
-     *
-     * <pre>
-     * StringUtils.isNumeric(null)   = false
-     * StringUtils.isNumeric("")     = false
-     * StringUtils.isNumeric("  ")   = false
-     * StringUtils.isNumeric("123")  = true
-     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
-     * StringUtils.isNumeric("12 3") = false
-     * StringUtils.isNumeric("ab2c") = false
-     * StringUtils.isNumeric("12-3") = false
-     * StringUtils.isNumeric("12.3") = false
-     * StringUtils.isNumeric("-123") = false
-     * StringUtils.isNumeric("+123") = false
-     * </pre>
-     *
-     * @param cs the CharSequence to check, may be null
-     * @return {@code true} if only contains digits, and is non-null
-     */
-    public static boolean isNumeric(final CharSequence cs) {
-        if (isEmpty(cs)) {
-            return false;
-        }
-        final int sz = cs.length();
-        for (int i = 0; i < sz; i++) {
-            if (!Character.isDigit(cs.charAt(i))) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Strips whitespace from the start and end of a String.
-     *
-     * <p>This is similar to {@link String#trim()} but removes whitespace.
-     * Whitespace is defined by {@link #isBlankChar(char)}.</p>
-     *
-     * <p>A {@code null} input String returns {@code null}.</p>
-     *
-     * <pre>
-     * StringUtils.strip(null)     = null
-     * StringUtils.strip("")       = ""
-     * StringUtils.strip("   ")    = ""
-     * StringUtils.strip("abc")    = "abc"
-     * StringUtils.strip("  abc")  = "abc"
-     * StringUtils.strip("abc  ")  = "abc"
-     * StringUtils.strip(" abc ")  = "abc"
-     * StringUtils.strip(" ab c ") = "ab c"
-     * </pre>
-     *
-     * @param str the String to remove whitespace from, may be null
-     * @return the stripped String, {@code null} if null String input
-     */
-    public static String strip(final String str) {
-        if (str == null || str.isEmpty()) {
-            return str;
-        }
-
-        int beginIndex = 0;
-        int endIndex = str.length() - 1;
-
-        while (beginIndex <= endIndex && isBlankChar(str.charAt(beginIndex))) {
-            beginIndex++;
-        }
-
-        while (endIndex > beginIndex && isBlankChar(str.charAt(endIndex))) {
-            endIndex--;
-        }
-
-        return str.substring(beginIndex, endIndex + 1);
-    }
-
-    /**
-     * Checks if the character is whitespace
-     *
-     * @param ch the character to check
-     * @return {@code true} if the character is a Java whitespace
-     * character; {@code false} otherwise.
-     * @see java.lang.Character#isWhitespace(char)
-     * @see java.lang.Character#isSpaceChar(char)
-     */
-    public static boolean isBlankChar(final char ch) {
-        return Character.isSpaceChar(ch)
-                || Character.isWhitespace(ch)
-                || ch == '\u202a'
-                || ch == '\ufeff'
-                || ch == '\u3164'
-                || ch == '\u2800'
-                || ch == '\u200c'
-                || ch == '\u180e';
-    }
-}
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/StyleUtil.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/StyleUtil.java
index cec83fef..39be6627 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/StyleUtil.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/StyleUtil.java
@@ -23,6 +23,7 @@ import java.util.Optional;
 import java.util.function.Consumer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.constant.BuiltinFormats;
 import org.apache.fesod.sheet.metadata.data.DataFormatData;
 import org.apache.fesod.sheet.metadata.data.HyperlinkData;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/WorkBookUtil.java 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/WorkBookUtil.java
index 7c17a30a..70a9ce93 100644
--- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/WorkBookUtil.java
+++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/util/WorkBookUtil.java
@@ -22,6 +22,7 @@ package org.apache.fesod.sheet.util;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.metadata.csv.CsvWorkbook;
 import org.apache.fesod.sheet.metadata.data.DataFormatData;
 import org.apache.fesod.sheet.metadata.data.WriteCellData;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/AbstractExcelWriteExecutor.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/AbstractExcelWriteExecutor.java
index 7002751f..1db12319 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/AbstractExcelWriteExecutor.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/AbstractExcelWriteExecutor.java
@@ -21,6 +21,7 @@ package org.apache.fesod.sheet.write.executor;
 
 import java.util.List;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.context.WriteContext;
 import org.apache.fesod.sheet.converters.Converter;
 import org.apache.fesod.sheet.converters.ConverterKeyBuild;
@@ -37,7 +38,6 @@ import 
org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
 import org.apache.fesod.sheet.support.ExcelTypeEnum;
 import org.apache.fesod.sheet.util.DateUtils;
 import org.apache.fesod.sheet.util.FileTypeUtils;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.apache.fesod.sheet.util.StyleUtil;
 import org.apache.fesod.sheet.util.WorkBookUtil;
 import org.apache.fesod.sheet.util.WriteHandlerUtils;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteFillExecutor.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteFillExecutor.java
index 597f6fa2..cd36b9f5 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteFillExecutor.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteFillExecutor.java
@@ -34,6 +34,9 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.ListUtils;
+import org.apache.fesod.common.util.MapUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.context.WriteContext;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
 import org.apache.fesod.sheet.enums.WriteDirectionEnum;
@@ -44,10 +47,7 @@ import 
org.apache.fesod.sheet.metadata.property.ExcelContentProperty;
 import org.apache.fesod.sheet.util.BeanMapUtils;
 import org.apache.fesod.sheet.util.ClassUtils;
 import org.apache.fesod.sheet.util.FieldUtils;
-import org.apache.fesod.sheet.util.ListUtils;
-import org.apache.fesod.sheet.util.MapUtils;
 import org.apache.fesod.sheet.util.PoiUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.fesod.sheet.util.WriteHandlerUtils;
 import org.apache.fesod.sheet.write.handler.context.CellWriteHandlerContext;
 import org.apache.fesod.sheet.write.handler.context.RowWriteHandlerContext;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/handler/impl/FillStyleCellWriteHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/handler/impl/FillStyleCellWriteHandler.java
index 14bfd594..71e29d7f 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/handler/impl/FillStyleCellWriteHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/handler/impl/FillStyleCellWriteHandler.java
@@ -20,9 +20,9 @@
 package org.apache.fesod.sheet.write.handler.impl;
 
 import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.common.util.BooleanUtils;
 import org.apache.fesod.sheet.constant.OrderConstant;
 import org.apache.fesod.sheet.metadata.data.WriteCellData;
-import org.apache.fesod.sheet.util.BooleanUtils;
 import org.apache.fesod.sheet.write.handler.CellWriteHandler;
 import org.apache.fesod.sheet.write.handler.context.CellWriteHandlerContext;
 import org.apache.fesod.sheet.write.metadata.holder.WriteWorkbookHolder;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/handler/impl/WriteSheetWorkbookWriteHandler.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/handler/impl/WriteSheetWorkbookWriteHandler.java
index 164ac5ef..82d7d467 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/handler/impl/WriteSheetWorkbookWriteHandler.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/handler/impl/WriteSheetWorkbookWriteHandler.java
@@ -24,8 +24,8 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.constant.OrderConstant;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.fesod.sheet.write.handler.WorkbookWriteHandler;
 import org.apache.fesod.sheet.write.metadata.holder.WriteSheetHolder;
 import org.apache.fesod.sheet.write.metadata.holder.WriteWorkbookHolder;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/holder/WriteSheetHolder.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/holder/WriteSheetHolder.java
index 2391b68c..faf578db 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/holder/WriteSheetHolder.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/holder/WriteSheetHolder.java
@@ -25,9 +25,9 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.enums.HolderEnum;
 import org.apache.fesod.sheet.enums.WriteLastRowTypeEnum;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.fesod.sheet.write.metadata.WriteSheet;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.ss.usermodel.Sheet;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/holder/WriteWorkbookHolder.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/holder/WriteWorkbookHolder.java
index f196fc66..d11865c1 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/holder/WriteWorkbookHolder.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/holder/WriteWorkbookHolder.java
@@ -34,6 +34,8 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString.Exclude;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.common.util.IoUtils;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
 import org.apache.fesod.sheet.enums.HolderEnum;
 import org.apache.fesod.sheet.exception.ExcelGenerateException;
@@ -41,8 +43,6 @@ import org.apache.fesod.sheet.metadata.data.DataFormatData;
 import org.apache.fesod.sheet.support.ExcelTypeEnum;
 import org.apache.fesod.sheet.util.DateUtils;
 import org.apache.fesod.sheet.util.FileUtils;
-import org.apache.fesod.sheet.util.IoUtils;
-import org.apache.fesod.sheet.util.MapUtils;
 import org.apache.fesod.sheet.util.StyleUtil;
 import 
org.apache.fesod.sheet.write.handler.context.WorkbookWriteHandlerContext;
 import org.apache.fesod.sheet.write.metadata.WriteWorkbook;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/style/WriteCellStyle.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/style/WriteCellStyle.java
index 63557a37..24153cf2 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/style/WriteCellStyle.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/style/WriteCellStyle.java
@@ -22,11 +22,11 @@ package org.apache.fesod.sheet.write.metadata.style;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.constant.BuiltinFormats;
 import org.apache.fesod.sheet.metadata.data.DataFormatData;
 import org.apache.fesod.sheet.metadata.property.FontProperty;
 import org.apache.fesod.sheet.metadata.property.StyleProperty;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.FillPatternType;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/style/WriteFont.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/style/WriteFont.java
index a763464f..c24c917e 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/style/WriteFont.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/metadata/style/WriteFont.java
@@ -22,7 +22,7 @@ package org.apache.fesod.sheet.write.metadata.style;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
-import org.apache.fesod.sheet.util.StringUtils;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.poi.common.usermodel.fonts.FontCharset;
 import org.apache.poi.hssf.usermodel.HSSFPalette;
 import org.apache.poi.ss.usermodel.Font;
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/style/HorizontalCellStyleStrategy.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/style/HorizontalCellStyleStrategy.java
index 7a740221..446ffb26 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/style/HorizontalCellStyleStrategy.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/style/HorizontalCellStyleStrategy.java
@@ -24,8 +24,8 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.metadata.data.WriteCellData;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.apache.fesod.sheet.write.handler.context.CellWriteHandlerContext;
 import org.apache.fesod.sheet.write.metadata.style.WriteCellStyle;
 
diff --git 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/style/column/LongestMatchColumnWidthStyleStrategy.java
 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/style/column/LongestMatchColumnWidthStyleStrategy.java
index 1f3596d7..8888e656 100644
--- 
a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/style/column/LongestMatchColumnWidthStyleStrategy.java
+++ 
b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/style/column/LongestMatchColumnWidthStyleStrategy.java
@@ -23,10 +23,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.sheet.enums.CellDataTypeEnum;
 import org.apache.fesod.sheet.metadata.Head;
 import org.apache.fesod.sheet.metadata.data.WriteCellData;
-import org.apache.fesod.sheet.util.MapUtils;
 import org.apache.fesod.sheet.write.metadata.holder.WriteSheetHolder;
 import org.apache.poi.ss.usermodel.Cell;
 
diff --git 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/annotation/ExcelPropertyFormatTest.java
 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/annotation/ExcelPropertyFormatTest.java
index edb6be0b..95a80b31 100644
--- 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/annotation/ExcelPropertyFormatTest.java
+++ 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/annotation/ExcelPropertyFormatTest.java
@@ -33,11 +33,11 @@ import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
 import lombok.Data;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.FesodSheet;
 import org.apache.fesod.sheet.annotation.format.DateTimeFormat;
 import org.apache.fesod.sheet.context.AnalysisContext;
 import org.apache.fesod.sheet.read.listener.ReadListener;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.junit.jupiter.api.Test;
diff --git 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/bom/BomDataTest.java 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/bom/BomDataTest.java
index 86155338..89e0ae0d 100644
--- a/fesod-sheet/src/test/java/org/apache/fesod/sheet/bom/BomDataTest.java
+++ b/fesod-sheet/src/test/java/org/apache/fesod/sheet/bom/BomDataTest.java
@@ -26,12 +26,12 @@ import java.util.List;
 import java.util.Map;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.compress.utils.Lists;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.FesodSheet;
 import org.apache.fesod.sheet.context.AnalysisContext;
 import org.apache.fesod.sheet.metadata.data.ReadCellData;
 import org.apache.fesod.sheet.read.listener.ReadListener;
 import org.apache.fesod.sheet.support.ExcelTypeEnum;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.apache.fesod.sheet.util.TestFileUtil;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.MethodOrderer;
diff --git 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/csv/CsvFormatTest.java 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/csv/CsvFormatTest.java
index 4803c4a6..3baefab6 100644
--- a/fesod-sheet/src/test/java/org/apache/fesod/sheet/csv/CsvFormatTest.java
+++ b/fesod-sheet/src/test/java/org/apache/fesod/sheet/csv/CsvFormatTest.java
@@ -31,6 +31,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.csv.CSVFormat;
 import org.apache.commons.csv.CSVPrinter;
 import org.apache.commons.csv.QuoteMode;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.ExcelReader;
 import org.apache.fesod.sheet.ExcelWriter;
 import org.apache.fesod.sheet.FesodSheet;
@@ -41,7 +42,6 @@ import 
org.apache.fesod.sheet.read.metadata.holder.ReadWorkbookHolder;
 import org.apache.fesod.sheet.read.metadata.holder.csv.CsvReadWorkbookHolder;
 import org.apache.fesod.sheet.support.ExcelTypeEnum;
 import org.apache.fesod.sheet.util.DateUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.fesod.sheet.util.TestFileUtil;
 import org.apache.fesod.sheet.write.metadata.WriteSheet;
 import org.apache.fesod.sheet.write.metadata.holder.WriteWorkbookHolder;
diff --git 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/exception/ExcelAnalysisStopSheetExceptionDataListener.java
 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/exception/ExcelAnalysisStopSheetExceptionDataListener.java
index 1ccbee5a..7792a2ce 100644
--- 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/exception/ExcelAnalysisStopSheetExceptionDataListener.java
+++ 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/exception/ExcelAnalysisStopSheetExceptionDataListener.java
@@ -23,10 +23,10 @@ import java.util.List;
 import java.util.Map;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.common.util.ListUtils;
+import org.apache.fesod.common.util.MapUtils;
 import org.apache.fesod.sheet.context.AnalysisContext;
 import org.apache.fesod.sheet.event.AnalysisEventListener;
-import org.apache.fesod.sheet.util.ListUtils;
-import org.apache.fesod.sheet.util.MapUtils;
 import org.junit.jupiter.api.Assertions;
 
 /**
diff --git 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/fill/style/FillStyleAnnotatedTest.java
 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/fill/style/FillStyleAnnotatedTest.java
index 038e883d..9a3a199b 100644
--- 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/fill/style/FillStyleAnnotatedTest.java
+++ 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/fill/style/FillStyleAnnotatedTest.java
@@ -22,11 +22,11 @@ package org.apache.fesod.sheet.fill.style;
 import java.io.File;
 import java.io.FileInputStream;
 import java.util.List;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.FesodSheet;
 import org.apache.fesod.sheet.fill.FillData;
 import org.apache.fesod.sheet.metadata.Head;
 import org.apache.fesod.sheet.util.DateUtils;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.apache.fesod.sheet.util.TestFileUtil;
 import org.apache.fesod.sheet.write.handler.context.CellWriteHandlerContext;
 import org.apache.fesod.sheet.write.metadata.style.WriteCellStyle;
diff --git 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/fill/style/FillStyleDataTest.java
 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/fill/style/FillStyleDataTest.java
index 847a7d66..62b3ce3f 100644
--- 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/fill/style/FillStyleDataTest.java
+++ 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/fill/style/FillStyleDataTest.java
@@ -22,10 +22,10 @@ package org.apache.fesod.sheet.fill.style;
 import java.io.File;
 import java.io.FileInputStream;
 import java.util.List;
+import org.apache.fesod.common.util.ListUtils;
 import org.apache.fesod.sheet.FesodSheet;
 import org.apache.fesod.sheet.metadata.Head;
 import org.apache.fesod.sheet.util.DateUtils;
-import org.apache.fesod.sheet.util.ListUtils;
 import org.apache.fesod.sheet.util.TestFileUtil;
 import org.apache.fesod.sheet.write.handler.context.CellWriteHandlerContext;
 import org.apache.fesod.sheet.write.metadata.style.WriteCellStyle;
diff --git 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/parameter/AutoStripParameterTest.java
 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/parameter/AutoStripParameterTest.java
index 819f9dad..307cdd77 100644
--- 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/parameter/AutoStripParameterTest.java
+++ 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/parameter/AutoStripParameterTest.java
@@ -24,6 +24,7 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.fesod.common.util.StringUtils;
 import org.apache.fesod.sheet.ExcelReader;
 import org.apache.fesod.sheet.ExcelWriter;
 import org.apache.fesod.sheet.FesodSheet;
@@ -33,7 +34,6 @@ import org.apache.fesod.sheet.read.metadata.ReadSheet;
 import org.apache.fesod.sheet.support.ExcelTypeEnum;
 import org.apache.fesod.sheet.util.ParameterUtil;
 import org.apache.fesod.sheet.util.SheetUtils;
-import org.apache.fesod.sheet.util.StringUtils;
 import org.apache.fesod.sheet.util.TestFileUtil;
 import org.apache.fesod.sheet.write.metadata.WriteSheet;
 import org.junit.jupiter.api.Assertions;
diff --git 
a/fesod-sheet/src/test/java/org/apache/fesod/sheet/util/StringUtilsTest.java 
b/fesod-sheet/src/test/java/org/apache/fesod/sheet/util/StringUtilsTest.java
deleted file mode 100644
index 1ce946b6..00000000
--- a/fesod-sheet/src/test/java/org/apache/fesod/sheet/util/StringUtilsTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.fesod.sheet.util;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-public class StringUtilsTest {
-
-    @Test
-    void stripTest() {
-        Assertions.assertNull(StringUtils.strip(null));
-        Assertions.assertEquals("", StringUtils.strip(""));
-        Assertions.assertEquals("", StringUtils.strip("   "));
-        Assertions.assertEquals("abc", StringUtils.strip("abc"));
-        Assertions.assertEquals("abc", StringUtils.strip("  abc"));
-        Assertions.assertEquals("abc", StringUtils.strip("abc  "));
-        Assertions.assertEquals("abc", StringUtils.strip(" abc "));
-        Assertions.assertEquals("abc", StringUtils.strip(" abc "));
-        Assertions.assertEquals("abc", StringUtils.strip(" abc "));
-        Assertions.assertEquals("ab c", StringUtils.strip(" ab c "));
-        Assertions.assertEquals("ab c", StringUtils.strip(" ab c "));
-    }
-
-    @Test
-    void isBlankCharTest() {
-        Assertions.assertTrue(StringUtils.isBlankChar(' '));
-        Assertions.assertTrue(StringUtils.isBlankChar(' '));
-        Assertions.assertTrue(StringUtils.isBlankChar('\ufeff'));
-        Assertions.assertTrue(StringUtils.isBlankChar('\u202a'));
-        Assertions.assertTrue(StringUtils.isBlankChar('\u3164'));
-        Assertions.assertTrue(StringUtils.isBlankChar('\u2800'));
-        Assertions.assertTrue(StringUtils.isBlankChar('\u200c'));
-        Assertions.assertTrue(StringUtils.isBlankChar('\u180e'));
-    }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to