http://blog.csdn.net/defonds/article/details/6733579
jXLS 提供 jxls-reader 模块用来读取 XLS 文件并且用读来的表格数据填充 Java bean。
使用 jXLS 来解析 cxcel 文件并使用读来的数据填充 Java 对象我们首先要创建一个 XLSReader 对象。要创建这个对象,最简单的方法就是使用一个 XML 配置文件。在本文的示例代码中,我们使用具有部门信息数据的 departmentdata.xls 文件来展示这一方法。
我们使用 XML 文件在电子表单元格和 Java 对象之间进行映射。映射文件的结构比较简单。以示例代码中 departmentdata.xls 文件的 Sheet1 为例,我们看一下 XML 文件是如何进行映射的:
- <?xmlversion="1.0"encoding="ISO-8859-1"?>
- <workbook>
- <worksheetname="Sheet1">
- <sectionstartRow="0"endRow="6">
- <mappingcell="B1">department.name</mapping>
- <mappingcell="A4">department.chief.name</mapping>
- <mappingcell="B4">department.chief.age</mapping>
- <mappingcell="D4">department.chief.payment</mapping>
- <mappingrow="3"col="4">department.chief.bonus</mapping>
- </section>
- <loopstartRow="7"endRow="7"items="department.staff"var="employee"varType="net.sf.jxls.reader.sample.Employee">
- <sectionstartRow="7"endRow="7">
- <mappingrow="7"col="0">employee.name</mapping>
- <mappingrow="7"col="1">employee.age</mapping>
- <mappingrow="7"col="3">employee.payment</mapping>
- <mappingrow="7"col="4">employee.bonus</mapping>
- </section>
- <loopbreakcondition>
- <rowcheckoffset="0">
- <cellcheckoffset="0">Employee Payment Totals:</cellcheck>
- </rowcheck>
- </loopbreakcondition>
- </loop>
- </worksheet>
- </workbook>
可以看到,XML 文件的根元素是 workbook,workbook 可以包含子元素 worksheet。worksheet 标签应该使用 name 属性来指出它所描述的 excel 表格(在我们的例子中是 Sheet1)。
worksheet 元素可以包含任意数量的 section 和 loop 子元素。
section 元素代表了一个简单的电子表格单元格块。这个单元格块的首行和最后一行使用 startRow 和 endRow 属性来定义。
在 jXLS 当前版本中,我们就是通过定义一系列的 section 来解析整个的 excel sheet 文件。这意味着即使我们不打算读取 sheet 的起始行,我们也要定义一个空的 section,这样,这些行才会在我们的 XML 文件中被反映出来。这些没用的行将被忽略掉。
使用 mapping 标签将 XLS 文件的单元格映射到 Java bean 的属性中:
- <mappingcell="B1">department.name</mapping>
另外一个做法是使用单元格的行号和列号(基于 0,即起始 为 0)来定义要映射的单元格:
- <mappingrow="3"col="4">department.chief.bonus</mapping>
以上定义了 E4 单元格,并把它映射到 department.chief.bonus 属性。
loop 元素用来定义一些循环(重复)的行,它应该包含 startRow 和 endRow 属性来定义这些重复块的开始行和结束行。类似于 JSTL 标签,items 属性代表了包含这些重复行的容器,var 属性用来指示遍历时的容器的某一项,varType 属性定义了 var 属性所代表的 Java 类全名:
- <loopstartRow="7"endRow="7"items="department.staff"var="employee"varType="net.sf.jxls.reader.sample.Employee">
loop 元素可以包含任意数量的 section 和 loop 元素。loop 元素必须包含 loopbreakcondition 来定义循环的跳出终止。在我们的示例中以 loop 块的下一行的第一个单元格的 Employee Payment Totals: 作为跳出判断:
- <loopbreakcondition>
- <rowcheckoffset="0">
- <cellcheckoffset="0">Employee Payment Totals:</cellcheck>
- </rowcheck>
- </loopbreakcondition>
以上就是我们在创建 XML 映射文件时所有要注意的事项。下边是一个简单的提取 XLS 文件数据到 Java bean 的示例代码:
- InputStream inputXML = new BufferedInputStream(getClass().getResourceAsStream(xmlConfig));
- XLSReader mainReader = ReaderBuilder.buildFromXML( inputXML );
- InputStream inputXLS = new BufferedInputStream(getClass().getResourceAsStream(dataXLS));
- Department department = new Department();
- Department hrDepartment = new Department();
- List departments = new ArrayList();
- Map beans = new HashMap();
- beans.put("department", department);
- beans.put("hrDepartment", hrDepartment);
- beans.put("departments", departments);
- XLSReadStatus readStatus = mainReader.read( inputXLS, beans);
相关推荐
这是博客《官方给的 JXLS 读取 excel 文件的例子》配套示例,博客地址:http://blog.csdn.net/defonds/article/details/6733579。 下载后,将得到的所有依赖包导入项目即可运行。
jxls导出excel官方例子jxls导出excel官方例子jxls导出excel官方例子jxls导出excel官方例子
用Jxls实现数据导入excel实例java代码
jxls 实现例子 博文链接:https://tml808.iteye.com/blog/150766
jxls利用模板生成excel文件, 非常方便
java利用jxls操作excel模板文件
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
JXLS 2.4.0 直接导出Excel 官方例子,部分修改, multiSheet 操作,指定function
jxls教程 使用Java操作Excel,创建模板生成 jxls教程 使用Java操作Excel,创建模板生成
使用jxls技术,自己创建Excel模板导出数据
jxls使用简单,只需定义一个excel模板,在excel中使用jx公式即可轻松实现,具体可查看项目,运行Application.java的main方法即可启动项目,访问htpp://localhost:8080/member/user/userExport即可导出数据生成excel...
jar包 jxls方式导出excel 包含所需的jar包 java中
SpringBoot(33) 整合JXLS实现Excel导入导出
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和写入xls和xlsx文件,现把结果告诉大家,希望大家不走弯路,直接掌握先进实用的技术,解决实际工作问题。...
jxls,读取json转为excel文件导出
NULL 博文链接:https://siyuan-zhu.iteye.com/blog/2240423
官方jxls-官方jxls-2.4.1官方jxls-2.4.1官方jxls-2.4.1官方jxls-2.4.1官方jxls-2.4.12.4.1官方jxls-2.4.1