Java excel条件解析映射框架设计

前段时间,公司boss提了一个需求,要求解析很多张excel数据保存到数据库中,但是这些excel参差不齐,而其中又暗藏着一定的规律,于是在与同事与前辈的交谈中,确立了一个解决方案,最后自己动手造了个轮子。

excel类似于这样的:


image.png

我们要查询一个excel里面的数据,比如他的第xx个单元格内容满足一个条件,就取第xx个单元格。
比如拿这个excel来说,我们要解析成一个对象,他有一个属性是日期,还有一个面额的对象集合,最后还有一个属性是统计人。我们可能会有很多张excel,均都满足这样的一个规律,并且这个条件后期可能会经常发生变化,硬编码是不可能的。

于是乎,决定把这些规律用配置文件给他表达出来(经过一番的深思,最后决定使用yaml文件进行配置):

image.png

[x]代表当前的第x个单元格,索引用0开始,比如[1]代表当前行第1个单元格。

所有的子对象的属性必须用properties属性包起来,因为,对于子对象我们也支持使用子对象的条件表达式。对于子对象是集合等相关数据类型,如果根据表达式匹配多次,会反射到对应的数据类型自动装配,无需进行匹配,具体使用方法详见:https://gitee.com/luhui123/excel-mapping-helper

当然,这个配置内容如果你不喜欢放到文件中,也是可以保存到数据库中的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 3,932评论 1 22
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,246评论 6 13
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,481评论 0 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 1 雪崩时,没有一片雪花觉得自己有责任。——伏尔泰(英国) 顾炎武先生提出“天下兴亡,匹夫有责”时,也正是明末之雪...
    照见者阅读 292评论 0 0