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

萨瓦迪卡1年前 (2025-01-13)java技术1109
  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

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

分享给朋友:

相关文章

org.tigris.subversion.javahl.ClientException:Attempted to lock an already-locked dir

 svn更新或提交时候报错:org.tigris.subversion.javahl.ClientException:Attempted to lock an already-locke...

java解析JSON 数组数据 实例

 public  static void main (String args[]){  String sJson ="[{'acceptTim...

目标管理法——目标分解法

让自己的人生更幸福更有意义关键是:要将梦想转化为具体的目标,然后合理的分解,达到量化,指标化!现将学习到的两种非常有效的目标分解法分享给所有梦想、有激情的朋友:祝愿大家都能梦想成真! 一、俄...

谈话让别人舒服的程度,决定你成功的高度

职场上,有这样两种截然相反的人:有人生怕别人舒服,尽量让别人不舒服,而只要自己舒服就行;还有一类人生怕别人不舒服,尽量让别人舒服,哪怕委屈自己。猎头公司猎聘的老总有几十万年薪的,也有几百万的,甚至有过...

MyEclipse 中项目修改SVN的地址

MyEclipse 中项目修改SVN的地址

在工作环境调整时,有的时候SVN服务器的地址需要修改,而正在开发中的项目在Eclipse中有些代码没有提交,此时怎么修改SVN的地址呢?以下有一个简单的办法:一、在MyEclipse中选择Window...

程序员为什么不炫富

程序员为什么不炫富

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

评论列表

发表评论

访客

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