若依框架实现 导入excel时校验必填字段

萨瓦迪卡2年前 (2025-01-13)java技术1797
  1. 1.Excel类自定义注解添加必填校验

  2. /**
     * 判断是否必填项
     */
    public boolean required() default false;

    2.在实体类的字段添加检验

@Excel(name = "姓名",required = true)
private String personName;

3.在ExcelUtil类的importExcel方法里,获取是否必填属性并进行校验

 if (StringUtils.isNotNull(fieldType))
    {
        String propertyName = field.getName();

        if (StringUtils.isNotEmpty(attr.targetAttr()))
        {
            propertyName = field.getName() + "." + attr.targetAttr();
        }
        //获取是否有必填属性
        boolean required = attr.required();
        if(required) {
            if(StringUtils.isNull(val) || StringUtils.isEmpty(val.toString())) {
                throw new Exception(attr.name()+" 单元格未填写,请正确填写!");
            }
        }

        if (StringUtils.isNotEmpty(attr.readConverterExp()))
        {
            val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator());
        }
        else if (StringUtils.isNotEmpty(attr.dictType()))
        {
            val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator());
        }
        else if (!attr.handler().equals(ExcelHandlerAdapter.class))
        {
            val = dataFormatHandlerAdapter(val, attr, null);
        }
        else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures))
        {
            PictureData image = pictures.get(row.getRowNum() + "_" + entry.getKey());
            if (image == null)
            {
                val = "";
            }
            else
            {
                byte[] data = image.getData();
                val = FileUtils.writeImportBytes(data);
            }
        }
        ReflectUtils.invokeSetter(entity, propertyName, val);
    }
}

4.页面效果

image.png

本文原创,转载必追究版权。

分享给朋友:

相关文章

freeMarker 截取字符串(操作字符串函数 )

<#if c.proSummary!?length gt 25>  <!-- 如果长度 >25 截取25个字-->    ...

js/jquery 日历控件及实例下载

js/jquery 日历控件及实例下载

实现日历控件效果:页面:<link href="${base}/resource/${profile.path}/css/lhgcalendar.css" rel="...

是谁动了我的座位

是谁动了我的座位

女孩一上火车,见自己的座位上坐着一男士。她核对自己的票,客气地说:“先生,您坐错位置了吧?” 男士拿出票嚷嚷着:“看清楚点,这是我的座,你瞎了?” 女孩仔细看了他的票,不再做声,默...

程序员为什么不炫富

程序员为什么不炫富

 提到互联网,尤其是互联网工程师们,人们往往会想到两个词:“高薪”和“高压”。在知乎上“为什么很少见工资高的程序员炫富?”的问题下,一个得票很高的答案是:“乐意炫富的人,不是因为有钱,而是因为付出的少...

樊山越玲 一周年

樊山越玲 一周年

2015-12-25樊先森:周末有约吗?玲玲:有约,不过也得先以你为主啊。樊先森:昂,这样说我还挺开心的。2015-3-26玲玲:亲爱的,苹果是你买的吗?已经收到了,谢谢老公玲玲:有点小惊喜樊先森:那...

ajax提交表单、ajax实现文件上传(multipart/form-data)

方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单方式二:使用jquery的$.ajax({..}), 支持提交普通表单,但不支持...

评论列表

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。