Kaynağa Gözat

Excel支持导入Boolean型数据

RuoYi 4 yıl önce
ebeveyn
işleme
9d30a4652c

+ 4 - 3
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java

@@ -279,6 +279,10 @@ public class ExcelUtil<T>
                             val = DateUtil.getJavaDate((Double) val);
                         }
                     }
+                    else if (Boolean.TYPE == fieldType || Boolean.class == fieldType)
+                    {
+                        val = Convert.toBool(val, false);
+                    }
                     if (StringUtils.isNotNull(fieldType))
                     {
                         Excel attr = field.getAnnotation(Excel.class);
@@ -295,9 +299,6 @@ public class ExcelUtil<T>
                         {
                             val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator());
                         }
-                        if (fieldType == boolean.class && (val == null||"".equals(val))) {
-                            val = false;
-                        }
                         ReflectUtils.invokeSetter(entity, propertyName, val);
                     }
                 }

+ 4 - 2
ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java

@@ -204,8 +204,10 @@ public class ReflectUtils
                             args[i] = DateUtil.getJavaDate((Double) args[i]);
                         }
                     }
-                     else if (cs[i] == boolean.class|| cs[i] == Boolean.class) {
-                        args[i] = Convert.toBool(args[i]);}
+                    else if (cs[i] == boolean.class|| cs[i] == Boolean.class)
+                    {
+                        args[i] = Convert.toBool(args[i]);
+                    }
                 }
             }
             return (E) method.invoke(obj, args);