根据XML配置规则导入Excel数据(四)添加数据有效验证

简介:
package com.ivfly.xlsbean; 

import java.lang.reflect.InvocationTargetException; 

import org.apache.commons.beanutils.MethodUtils; 
import org.apache.commons.lang.StringUtils; 

/** 
* xls 导入规则 
* @author Administrator 

*/
 
public  class XlsImpRule { 
    
     private StringBuffer output =  new StringBuffer(); 
   /** 
    * 验证数据的合法性 
    * @param propertyName 
    * @param value 
    * @return TRUE:表示通过 
    */
 
   public Boolean validateProperty(BeanSpecification bs,String propertyName,Object value){ 
    PropertySpecification ps =    bs.getProperty().get(propertyName); 
    String formular = ps.getFormular(); 
     if(StringUtils.isBlank(formular)){ 
       return  true
    } 
    String ismethodName =  "is"+StringUtils.capitalize(formular); 
    String setmethodName =  "set"+StringUtils.capitalize(formular); 
    Object result =  null
     try { 
      result = MethodUtils.invokeStaticMethod(ValidateUtil. class,ismethodName,value.toString()); 
        
    }  catch (NoSuchMethodException e) { 
      e.printStackTrace(); 
//      try { 
//        result = MethodUtils.invokeStaticMethod(ValidateUtil.class,setmethodName,value); 
//      } catch (Exception es) { 
//        es.printStackTrace(); 
//      }    
    }  catch (IllegalAccessException e) { 
      e.printStackTrace(); 
    }  catch (InvocationTargetException e) { 
      e.printStackTrace(); 
    } 
     if(result!=  null){ 
       return (Boolean)result; 
    } 
     return Boolean.TRUE; 
  } 
   /** 
    * 添加某属性警告 
    * @return 
    */
 
   public  void addPropertyWarrning( int rowNum,BeanSpecification bs,String propertyName){ 
    PropertySpecification ps =    bs.getProperty().get(propertyName); 
    String wf = ps.getWarringFormat(); 
    String result = String.format(wf,ps.getValue()); 
    output.append( "第"+rowNum+ "行数据:"); 
    output.append(result).append( "\n"); 
  } 
   /** 
    * 报告警告信息 
    * @return 
    */
 
   public String reportWarrning(){ 
     return output.toString(); 
  } 

 
根据xml 中property节点定义formular定义验证规则,验证对应属性cell值是否合法。
同时,还提供了错误信息生成功能,则根据property节点的warringFormat属性 与Value值合成。



本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/756537,如需转载请自行联系原作者
相关文章
|
2月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
171 0
|
6月前
|
XML 存储 数据格式
抖音卡片链接生成器,xml卡片数据支持快手,通过XPOSED实现制作
本项目介绍抖音/快手卡片链接生成技术,包含技术原理与核心功能实现。通过Xposed框架Hook目标APP关键方法,自定义卡片生成与跳转逻辑。卡片数据以XML格式存储,便于解析和跨平台使用。提供完整代码示例,涵盖Xposed模块配置、XML数据结构、Hook实现及卡片生成器核心类。下载地址:https://www.pan38.com/share.php?code=DuNzA,提取码:8888(仅供学习参考)。
|
12月前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
246 1
|
XML 存储 移动开发
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
XML Web App开发 数据格式
HTML 页面显示 XML 数据
10月更文挑战第2天
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
2384 0
|
5月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。
|
5月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。

相关课程

更多