使用java语言读取excel数据是一件频繁的事情。一般的开发人员都会选用 JXL(java excel api) 的开源框架进行轻松的读取excel 数据文件,但是,在实际应用中,并没这么简单。
如果对excel 有以下要求,可以流程就变得复杂了:
1.指定的excel表单名称进行读取
2.如果有标题,还要检查标题是否符合要求(标题并不总是在第一行)
3.指定某些列不能为空值,或者不能重复,或者符合某个正则表达式,或者在枚举范围内。
.......
遇到以上问题,用java代码也可以轻易实现,但是,当这些要求重复出现时,编程就变得繁琐而无技术含量了。
有人想到,可以把这些共性问题抽象出来,写个通用的类来解决。没错,这可以解决以上方法,但是,读取excel文件,最终还是要通过编程方式。
其实,我们可以通过配置方式来解决以上的所有问题 。
实现原理:
一个 excel 表单,就相当一个小型的数据库,既然hibernate 实现了面向对象的操作数据库,我们也可以实现面向对象的操作excel文件。
一个excel表中的一个表单结构 一般和一个bean 对象一致,通过xml 配置把excel表结构和bean对象的属性关联起来,使得每一行数据可以初始化一个bean对象。
我们可以通过对JXL进一步封装,用面向对象的原理来读取excel文件!
实现方法:
(1)使用一个映射文件,配置校验信息和映射信息(如hibernate中的映射文件)。
(3)根据映射文件,读取excel中的数据。