若依导入Excel时添加必填字段校验

  1. Excel自定义注解添加必填校验
 	/**
     * 判断是否必填项
     */
    public boolean required() default false;

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

    /** 联系方式 */
    @Excel(name = "联系方式",required = true)
    private String phone;

3.在ExcelUtil的importExcelByMap方法里(对excel表单指定表格索引名转换成list) 获取必填属性并进行校验

 if (StringUtils.isNotNull(fieldType))
                        {
                            Excel attr = field.getAnnotation(Excel.class);
                            String propertyName = field.getName();
                            //获取是否有必填属性
                            boolean required = attr.required();
                            //注意实体类字段类型,除String类型外,其他类型会被解析为null值,所以要判断对象是否为null
                            if(required) {
                            	if(StringUtils.isNull(val) || StringUtils.isEmpty(val.toString())) {
                            		throw new Exception("红色单元格必填项未填写,请正确填写!");
                            	}
                            }
                            if (StringUtils.isNotEmpty(attr.targetAttr()))
                            {
                                propertyName = field.getName() + "." + attr.targetAttr();
                            }
                            else if (StringUtils.isNotEmpty(attr.readConverterExp()))
                            {
                                val = reverseByExp(String.valueOf(val), attr.readConverterExp());
                            }
                            ReflectUtils.invokeSetter(entity, propertyName, val);
                        }

4.页面效果(我在Excel导入模板里把必填项的列都标红了,如果需要可自行改动提示某一列未填)
在这里插入图片描述

5.此方法只针对若依框架进行修改

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Java实现导入Excel必填字段加红的功能,你可以按照以下步骤进行操作: 1. 首先,创建一个Java实体对象,用于存储Excel的数据。你需要在该对象的字段添加Excel解析的导入注解@ExcelImport,并设置对应的表头名称。 2. 在需要进行必填校验字段上,添加Excel校验注解@ExcelValid。 3. 在处理Excel导入的Controller方法,接收上传的Excel文件,并使用ExcelUtils.readFileManySheet方法读取文件内容,并将其保存到一个Map。 4. 遍历Map的每个Sheet,获取Sheet的名称和数据,然后进行相应的处理。 5. 当遍历到每个字段,通过判断该字段是否包含ExcelValid注解,并且字段的值是否为空,来确定是否需要进行必填校验。如果需要进行校验字段值为空,则抛出相应的错误。 下面是一个示例代码片段,用于演示如何实现Java导入Excel必填字段加红的功能: ```java // 创建实体对象 public class ExcelData { @ExcelImport("姓名") @ExcelValid(message = "姓名不能为空") private String name; @ExcelImport("年龄") @ExcelValid(message = "年龄不能为空") private int age; // 其他字段... } // Controller代码 @PostMapping("/import") public void upload(@RequestPart("file") MultipartFile file) throws Exception { Map<String, JSONArray> map = ExcelUtils.readFileManySheet(file); map.forEach((key, value) -> { System.out.println("Sheet名称:" + key); System.out.println("Sheet数据:" + value); List<ExcelData> dataList = new ArrayList<>(); for (Object obj : value) { JSONObject json = (JSONObject) obj; ExcelData data = new ExcelData(); // 解析并设置数据到实体对象 data.setName(json.getString("姓名")); data.setAge(json.getIntValue("年龄")); // 其他字段... dataList.add(data); } // 进行必填校验 for (ExcelData data : dataList) { Field[] fields = data.getClass().getDeclaredFields(); for (Field field : fields) { boolean isExcelValid = field.isAnnotationPresent(ExcelValid.class); if (isExcelValid) { field.setAccessible(true); Object fieldValue = field.get(data); if (ObjectUtils.isEmpty(fieldValue)) { throw new Exception("必填字段加红错误:" + field.getAnnotation(ExcelValid.class).message()); } } } } System.out.println("----------------------"); }); } ``` 通过以上步骤,你可以实现Java导入Excel必填字段加红的功能。在示例代码,我们使用了@ExcelValid注解来标记需要进行必填校验字段,并在处理Excel导入进行相应的校验。如果有字段的值为空,就会抛出错误信息。请根据你的实际需求进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值