读取和写入使用的是jxl组件
昨天项目中遇到了处理Excel的功能.记得在以前写过的读取Excel都是利用坐标之类的来进行的.昨天突发奇想:可不可以把Excel当做数据库的一张表来处理?!经过考虑之后觉得可行.大体实现思路如下:
1.首先建立映射关系文件:excelmapping.xml
- xml version="1.0" encoding="UTF-8"?>
- <excel-mapping>
- <class name="com.bjce.uum.excel.domain.ExcelBean">
- <pop excelPop="姓名" classPop="userName">pop>
- <pop excelPop="性别" classPop="sexName">pop>
- <pop excelPop="出生日期" classPop="birthday">pop>
- <pop excelPop="单位编码" classPop="unitCode">pop>
- <pop excelPop="固定电话" classPop="phone">pop>
- <pop excelPop="移动手机" classPop="mobilePhone">pop>
- class>
- excel-mapping>
1.1 class:定义一个Excel的配置信息.
1.2 name:定义存储Excel每一行的类.类似于Hibernate的pojo.
1.3 excelPop:Excel文件中的列名.
1.4 classPop:映射类中的属性
1. 读取Excel时首先读取excelmapping.xml配置文件.取出映身关系和映射类.读取Excel中的所有行和列,循环每一行的每一列,并取出每列的列名.在映身关系中查找与之对应的类属性.读出此列中的数据写入类属性中.读完整行之后将类写入集合中.循环所有行之后就产生了与Excel相对应的类的集合.
2. 写入Excel时首先读取excelmapping.xml配置文件.取出映身关系和映射类.将映射文件中配置的Excel列名写入第一行.获得写入的Excel列名.循环整个将要写入Excel的集合.取出集合中的每一个类.根据映射文件描述的Excel列名与类中属性关系.找出Excel中列名对应的类属性.拿出类中此属性的数据并写入Excel中对应的列名下
此方法只能适用于简单的Excel读写.