POI 导入导出Excel 通用解决方案

    用POI导入导出Excel ,通过Xml配置,使导入导出控制更加灵活。整体思路:Excel映射成xml,java后台通过操作xml来控制读取某行某列的单元格或写入某行某列单元格。具体可分为导入单个字段和循环多行记录。所以配置文件xml应该分开写,来看一个导出的xml配置文件,如:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Excel导出配置文件 changhaifeng  [email protected]>
<excelImport>
	<onceExport>
	   <!-- 字段解释 -->
		<field name="appName" excelPosition="B3" type="String" nameCN="工商局名称" excelPositionCN="A3"  />
		<field name="LinkMan" excelPosition="B4" type="String" nameCN="负责人" excelPositionCN="A4" />
		<field name="linkAddress" excelPosition="B5" type="String" nameCN="地址" excelPositionCN="A5" />
		<field name="linkTel" excelPosition="D4" type="DoubleString" nameCN="联系电话" excelPositionCN="C4" />
		<field name="startTime" excelPosition="B6" type="Date" nameCN="办理开始时间" excelPositionCN="A6"/>
		<field name="endTime" excelPosition="D6" type="DateTime" nameCN="办理结束时间" excelPositionCN="C6"/>
		<field name="appNum" excelPosition="B7" type="Integer" nameCN="数量" excelPositionCN="A7"/>
		<field name="money" excelPosition="D7" type="Double" nameCN="金额" excelPositionCN="C7"/>
	</onceExport>
	<repeatExport rowStart="11" rows="5" rowEnd="0"><!-- 目前rowEnd参数作为保留字段,暂时无效 -->
		<field name="sid" excelPosition="A11" type="String" nameCN="名次" />
		<field name="enterprisename" excelPosition="B11" type="String" nameCN="纳税户名称" />
		<field name="money" excelPosition="D11" type="double" nameCN="纳税金额" />
		<field name="address" excelPosition="C11" type="String" nameCN="所在街乡" />
	</repeatExport>
</excelImport>
 

 这样在我们读取Excel是就可以读取配置的关键字段,比如,我要读取“工商局名称”那么我只要读取Excel中的B3单元格就可以读取到我想要的数据。多循环数据读取,比如excel中可能有二十列数据我要读取其中的四列,一次是“名次”、“纳税户名称”、“纳税金额”、“所在街乡”那么我们把它配置在repeatExport标签中如上代码所示,在后台读取时可以只读取这四列,并将其转化为后台数据进行处理。

    上xml中配置文件详解:

          1.     name :             字段名称,对应bean的field

          2.     excelPosition :  excel中的位置

          3.     type:                数据类型

          4.     rowStart: 循环数去读取开始行

          5.     rows:        循环数据读取条数,默认为0,全部读取

 

 

你可能感兴趣的:(xml,bean,Excel)