diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8d83083e3..8e455a220 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@
* 【core 】 增加Partition
* 【http 】 SoapClient.sendForResponse改为public(issue#I466NN@Gitee)
* 【core 】 XmlUtil增加append重载(issue#I466Q0@Gitee)
+* 【poi 】 增加EscapeStrCellSetter(issue#I466ZZ@Gitee)
### 🐞Bug修复
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/EscapeStrCellSetter.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/EscapeStrCellSetter.java
new file mode 100644
index 000000000..60a62e133
--- /dev/null
+++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/EscapeStrCellSetter.java
@@ -0,0 +1,45 @@
+package cn.hutool.poi.excel.cell.setters;
+
+import cn.hutool.core.util.ReUtil;
+import cn.hutool.core.util.StrUtil;
+
+import java.util.regex.Pattern;
+
+/**
+ * 字符串转义Cell值设置器
+ * 使用 _x005F前缀转义_xXXXX_,避免被decode的问题
+ * 如用户传入'_x5116_'会导致乱码,使用此设置器转义为'_x005F_x5116_'
+ *
+ * @author looly
+ * @since 5.7.10
+ */
+public class EscapeStrCellSetter extends CharSequenceCellSetter {
+
+ private static final Pattern utfPtrn = Pattern.compile("_x[0-9A-Fa-f]{4}_");
+
+ /**
+ * 构造
+ *
+ * @param value 值
+ */
+ public EscapeStrCellSetter(CharSequence value) {
+ super(escape(StrUtil.str(value)));
+ }
+
+ /**
+ * 使用 _x005F前缀转义_xXXXX_,避免被decode的问题
+ * issue#I466ZZ@Gitee
+ *
+ * @param value 被转义的字符串
+ * @return 转义后的字符串
+ */
+ private static String escape(String value) {
+ if (value == null || false == value.contains("_x")) {
+ return value;
+ }
+
+ // 使用 _x005F前缀转义_xXXXX_,避免被decode的问题
+ // issue#I466ZZ@Gitee
+ return ReUtil.replaceAll(value, utfPtrn, "_x005F$0");
+ }
+}
diff --git a/hutool-poi/src/test/java/cn/hutool/poi/excel/ExcelWriteTest.java b/hutool-poi/src/test/java/cn/hutool/poi/excel/ExcelWriteTest.java
index c98f3ab2b..4f5916c52 100644
--- a/hutool-poi/src/test/java/cn/hutool/poi/excel/ExcelWriteTest.java
+++ b/hutool-poi/src/test/java/cn/hutool/poi/excel/ExcelWriteTest.java
@@ -8,6 +8,7 @@ import cn.hutool.core.lang.Console;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.poi.excel.cell.setters.EscapeStrCellSetter;
import cn.hutool.poi.excel.style.StyleUtil;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.BuiltinFormats;
@@ -740,7 +741,7 @@ public class ExcelWriteTest {
// https://gitee.com/dromara/hutool/issues/I466ZZ
// 需要输出S_20000314_x5116_0004
// 此处加入一个转义前缀:_x005F
- List