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

萨瓦迪卡3个月前 (01-13)java技术239
  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 判断日期变量为空处理 及InvalidReferenceException异常处理

at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:98);InvalidR...

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

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

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

太阳的后裔 经典对白(羞羞哒)

太阳的后裔 经典对白(羞羞哒)

关于电视剧 ,小编常说早就戒了,但是好剧呢还是要追滴。太阳的后裔, 追剧追到12集了,开始都是宋仲基比较调皮:我很想问你一件事情。什么都不要问,你知道我要问什么。看你现在一脸都是很想嘲笑我的表情。哪有...

竟然可以这样打扮!女人呆了!男人痴了!

来个轻松点的哇,惊呆了,肯定贵不了,立刻去瞅瞅...

dwz +jfinal 批量多文件上传 实例

页面部分:<link href="${root}/style/dwz/uploadify/css/uploadify.css" rel="sty...

office 2010安装、激活、激活工具下载

office 2010安装、激活、激活工具下载

 首先下载好工具包(包括office 2010安装程序、激活工具及Microsoft .NET Framework 4.0),点击工具包下载进行下载;安装好office 2010。如果是wi...

评论列表

发表评论

访客

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