diff --git a/CHANGELOG.md b/CHANGELOG.md
index 381188e2a..0483e04d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -32,6 +32,7 @@
* 【poi 】 修复xdr:row标签导致的问题(issue#1297@Github)
* 【core 】 修复FileUtil.loopFiles使用FileFilter无效问题(issue#I28V48@Gitee)
* 【extra 】 修复JschUtil.execByShell返回空的问题(issue#1067@Github)
+* 【poi 】 修复特殊的excel使用sax读取时未读到值的问题(issue#1303@Github)
-------------------------------------------------------------------------------------------------------------
@@ -72,7 +73,7 @@
* 【core 】 修复HexUtil.format问题(issue#I268XT@Gitee)
* 【core 】 修复ZipUtil判断压缩文件是否位于压缩目录内的逻辑有误的问题(issue#1251@Github)
* 【json 】 修复JSONObject.accumulate问题
-* 【core 】 修复部分xlsx文件sax方式解析空指针问题(issue#1265@Github)
+* 【poi 】 修复部分xlsx文件sax方式解析空指针问题(issue#1265@Github)
* 【core 】 修复PatternPool中邮编的正则(issue#1274@Github)
-------------------------------------------------------------------------------------------------------------
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
index a87de2f4f..33fafbd4d 100644
--- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
@@ -745,11 +745,11 @@ public class BeanUtil {
}
/**
- * 判断Bean是否为非空对象,非空对象表示本身不为null
或者含有非null
属性的对象
+ * 判断Bean是否为非空对象,非空对象表示本身不为{@code null}或者含有非{@code null}属性的对象
*
* @param bean Bean对象
* @param ignoreFiledNames 忽略检查的字段名
- * @return 是否为空,true
- 空 / false
- 非空
+ * @return 是否为空,{@code true} - 空 / {@code false} - 非空
* @since 5.0.7
*/
public static boolean isNotEmpty(Object bean, String... ignoreFiledNames) {
@@ -757,12 +757,12 @@ public class BeanUtil {
}
/**
- * 判断Bean是否为空对象,空对象表示本身为null
或者所有属性都为null
+ * 判断Bean是否为空对象,空对象表示本身为{@code null}或者所有属性都为{@code null}
* 此方法不判断static属性
*
* @param bean Bean对象
* @param ignoreFiledNames 忽略检查的字段名
- * @return 是否为空,true
- 空 / false
- 非空
+ * @return 是否为空,{@code true} - 空 / {@code false} - 非空
* @since 4.1.10
*/
public static boolean isEmpty(Object bean, String... ignoreFiledNames) {
@@ -781,12 +781,12 @@ public class BeanUtil {
}
/**
- * 判断Bean是否包含值为null
的属性
- * 对象本身为null
也返回true
+ * 判断Bean是否包含值为{@code null}的属性
+ * 对象本身为{@code null}也返回true
*
* @param bean Bean对象
* @param ignoreFiledNames 忽略检查的字段名
- * @return 是否包含值为null
的属性,true
- 包含 / false
- 不包含
+ * @return 是否包含值为null
的属性,{@code true} - 包含 / {@code false} - 不包含
* @since 4.1.10
*/
public static boolean hasNullField(Object bean, String... ignoreFiledNames) {
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ReflectUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ReflectUtil.java
index 48f116ea1..ec6606321 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/ReflectUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/ReflectUtil.java
@@ -140,7 +140,7 @@ public class ReflectUtil {
}
/**
- * 查找指定类中的指定name的字段(包括非public字段),也包括父类和Object类的字段, 字段不存在则返回null
+ * 查找指定类中的指定name的字段(包括非public字段),也包括父类和Object类的字段, 字段不存在则返回{@code null}
*
* @param beanClass 被查找字段的类,不能为null
* @param name 字段名
@@ -422,7 +422,7 @@ public class ReflectUtil {
}
/**
- * 查找指定Public方法 如果找不到对应的方法或方法不为public的则返回null
+ * 查找指定Public方法 如果找不到对应的方法或方法不为public的则返回{@code null}
*
* @param clazz 类
* @param methodName 方法名
@@ -442,7 +442,7 @@ public class ReflectUtil {
* 查找指定对象中的所有方法(包括非public方法),也包括父对象和Object类的方法
*
*
- * 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回null
。
+ * 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回{@code null}。
*
null
+ * 忽略大小写查找指定方法,如果找不到对应的方法则返回{@code null}
*
*
- * 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回null
。
+ * 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回{@code null}。
*
null
+ * 查找指定方法 如果找不到对应的方法则返回{@code null}
*
*
- * 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回null
。
+ * 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回{@code null}。
*
null
+ * 查找指定方法 如果找不到对应的方法则返回{@code null}
*
*
- * 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回null
。
+ * 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回{@code null}。
*
null
+ * 按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回{@code null}
*
*
* 此方法只检查方法名是否一致,并不检查参数的一致性。
@@ -544,7 +544,7 @@ public class ReflectUtil {
}
/**
- * 按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回null
+ * 按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回{@code null}
*
*
* 此方法只检查方法名是否一致(忽略大小写),并不检查参数的一致性。
@@ -561,7 +561,7 @@ public class ReflectUtil {
}
/**
- * 按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回null
+ * 按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回{@code null}
*
*
* 此方法只检查方法名是否一致,并不检查参数的一致性。
@@ -842,7 +842,7 @@ public class ReflectUtil {
*
*
* @param null
+ * @param obj 对象,如果执行静态方法,此值为{@code null}
* @param method 方法(对象方法或static方法都可)
* @param args 参数对象
* @return 结果
@@ -878,7 +878,7 @@ public class ReflectUtil {
*
*
* @param null
+ * @param obj 对象,如果执行静态方法,此值为{@code null}
* @param method 方法(对象方法或static方法都可)
* @param args 参数对象
* @return 结果
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/SheetDataSaxHandler.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/SheetDataSaxHandler.java
index b6d63ee7b..c703691e9 100644
--- a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/SheetDataSaxHandler.java
+++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/SheetDataSaxHandler.java
@@ -137,9 +137,6 @@ public class SheetDataSaxHandler extends DefaultHandler {
// 其它标签忽略
}
- /**
- * s标签结束的回调处理方法
- */
@Override
public void characters(char[] ch, int start, int length) {
if (false == this.isInSheetData) {
@@ -159,8 +156,11 @@ public class SheetDataSaxHandler extends DefaultHandler {
lastFormula.append(ch, start, length);
break;
}
+ } else{
+ // 按理说内容应该为"