我们在开发中经常用jxls实现导出功能,殊不知jxls也有导入功能,下面来介绍下如何使用jxls导入excel。
首先在maven的pom中添加相关依赖,如下:
<dependency> <groupId>net.sf.jxls</groupId> <artifactId>jxls-core</artifactId> <version>1.0.6</version> </dependency> <dependency> <groupId>net.sf.jxls</groupId> <artifactId>jxls-reader</artifactId> <version>1.0.6</version> </dependency>
然后需要配置导入模板(即字段映射关系),如下:
<?xml version="1.0" encoding="UTF-8"?> <workbook> <worksheet name="新增局数据"> <section startRow="1" endRow="2" /> <loop startRow="3" endRow="3" items="tcs" var="tc" varType="com.aspire.train.bdc.demo.entity.TcPartner"> <section startRow="3" endRow="3"> <mapping row="3" col="0">tc.operType</mapping> <mapping row="3" col="1">tc.partnerId</mapping> <mapping row="3" col="2">tc.partnerName</mapping> <mapping row="3" col="3">tc.description</mapping> <mapping row="3" col="4">tc.validProvince</mapping> <mapping row="3" col="5">tc.validDate</mapping> <mapping row="3" col="6">tc.expireDate</mapping> </section> <loopbreakcondition> <rowcheck offset="0"> <cellcheck offset="0"></cellcheck> </rowcheck> </loopbreakcondition> </loop> </worksheet> </workbook>
相关说明可以查看官网http://jxls.sourceforge.net/reference/reader.html
其次,是制作导入模板,如下:
下面是实现的java代码块,如下:
String xmlConfig = ConfigurationHelper .getFullFileName("com/aspire/train/bdc/demo/template/TcPartner.xml"); XLSReader mainReader; try { InputStream inputXML = new BufferedInputStream(new FileInputStream(xmlConfig)); mainReader = ReaderBuilder.buildFromXML(inputXML); InputStream inputXLS = new BufferedInputStream(file.getInputStream()); TcPartner tc = new TcPartner(); List<TcPartner> tcs = new ArrayList<TcPartner>(); Map<String,Object> beans = new HashMap<String,Object>(); beans.put("tc", tc); beans.put("tcs", tcs); mainReader.read(inputXLS, beans); System.out.println(beans); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }