`

官方JXLS 读取 excel 文件例子

 
阅读更多

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 文件是如何进行映射的:

  1. <?xmlversion="1.0"encoding="ISO-8859-1"?>
  2. <workbook>
  3. <worksheetname="Sheet1">
  4. <sectionstartRow="0"endRow="6">
  5. <mappingcell="B1">department.name</mapping>
  6. <mappingcell="A4">department.chief.name</mapping>
  7. <mappingcell="B4">department.chief.age</mapping>
  8. <mappingcell="D4">department.chief.payment</mapping>
  9. <mappingrow="3"col="4">department.chief.bonus</mapping>
  10. </section>
  11. <loopstartRow="7"endRow="7"items="department.staff"var="employee"varType="net.sf.jxls.reader.sample.Employee">
  12. <sectionstartRow="7"endRow="7">
  13. <mappingrow="7"col="0">employee.name</mapping>
  14. <mappingrow="7"col="1">employee.age</mapping>
  15. <mappingrow="7"col="3">employee.payment</mapping>
  16. <mappingrow="7"col="4">employee.bonus</mapping>
  17. </section>
  18. <loopbreakcondition>
  19. <rowcheckoffset="0">
  20. <cellcheckoffset="0">Employee Payment Totals:</cellcheck>
  21. </rowcheck>
  22. </loopbreakcondition>
  23. </loop>
  24. </worksheet>
  25. </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 的属性中:

  1. <mappingcell="B1">department.name</mapping>



另外一个做法是使用单元格的行号和列号(基于 0,即起始 为 0)来定义要映射的单元格:

  1. <mappingrow="3"col="4">department.chief.bonus</mapping>



以上定义了 E4 单元格,并把它映射到 department.chief.bonus 属性。
loop 元素用来定义一些循环(重复)的行,它应该包含 startRow 和 endRow 属性来定义这些重复块的开始行和结束行。类似于 JSTL 标签,items 属性代表了包含这些重复行的容器,var 属性用来指示遍历时的容器的某一项,varType 属性定义了 var 属性所代表的 Java 类全名:

  1. <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: 作为跳出判断:

  1. <loopbreakcondition>
  2. <rowcheckoffset="0">
  3. <cellcheckoffset="0">Employee Payment Totals:</cellcheck>
  4. </rowcheck>
  5. </loopbreakcondition>



以上就是我们在创建 XML 映射文件时所有要注意的事项。下边是一个简单的提取 XLS 文件数据到 Java bean 的示例代码:

  1. InputStream inputXML = new BufferedInputStream(getClass().getResourceAsStream(xmlConfig));
  2. XLSReader mainReader = ReaderBuilder.buildFromXML( inputXML );
  3. InputStream inputXLS = new BufferedInputStream(getClass().getResourceAsStream(dataXLS));
  4. Department department = new Department();
  5. Department hrDepartment = new Department();
  6. List departments = new ArrayList();
  7. Map beans = new HashMap();
  8. beans.put("department", department);
  9. beans.put("hrDepartment", hrDepartment);
  10. beans.put("departments", departments);
  11. XLSReadStatus readStatus = mainReader.read( inputXLS, beans);



原文链接:http://jxls.sourceforge.net/reference/reader.html

分享到:
评论

相关推荐

    官方给的 JXLS 读取 excel 文件的例子

    这是博客《官方给的 JXLS 读取 excel 文件的例子》配套示例,博客地址:http://blog.csdn.net/defonds/article/details/6733579。 下载后,将得到的所有依赖包导入项目即可运行。

    用Jxls实现数据导入excel实例

    本文将详细介绍如何使用Jxls实现数据导入Excel的实例。 Jxls库的核心功能在于提供了一种声明式的方式来处理Excel模板,通过使用Apache POI库来操作Excel文件。它的主要优点是将数据和样式分离,让开发者可以专注于...

    jxls 读写Excel

    jxls 实现例子 博文链接:https://tml808.iteye.com/blog/150766

    JXLS 2.4.0 官方源码例子

    JXLS是一个强大的Java库,用于处理Excel工作簿,它允许开发者使用模板方式来生成和读取Excel数据。2.4.0版本是其一个重要里程碑,提供了更多的功能和改进。这个压缩包“jxls_2.4.0_examples”包含了官方提供的示例...

    jxl 读取Excel模板并写入数据通用工具类

    本文将详细讨论如何使用JXL库创建一个通用的工具类来读取Excel模板并填充数据。 首先,我们需要了解JXL库的基本用法。JXL库提供了多种API,可以用来操作Excel文件的各个部分,包括工作簿(Workbook)、工作表...

    使用 jxls2.X 导出excel文件源码

    `jxls2` 是一个Java库,它允许开发者使用简单的Excel模板来动态地生成或读取Excel文件。本篇文章将深入探讨如何使用 `jxls2` 库来导出Excel文件,同时参考《使用 jxls2.X 导出excel文件源码》这篇博客文章中的案例...

    Android使用读取Excel文件.pdf

    接着,我们关注`readExcel()`方法,它负责读取Excel文件。这里使用了Apache POI库,这是一个强大的API,支持处理Microsoft Office格式的文件,包括Excel。在代码中,`Workbook.getWorkbook()`用于创建一个表示Excel...

    jxls自己写的简单实例

    当程序运行时,Jxls会读取模板文件,执行其中的Java表达式,然后将结果写入到新的Excel工作表中。这使得我们能够灵活地控制数据的展示,比如排序、计算等。 **横向排序** 在Excel中,横向排序通常涉及到列的重新...

    很好的jxls例子

    7. **事件驱动模型**:Jxls使用一种基于事件的模型,当读取或写入Excel文件时,会触发相应的事件,开发者可以通过实现监听器接口来扩展其功能。 8. **与Spring框架的集成**:Jxls可以很好地与Spring框架集成,可以...

    jxls读写工具类

    1. **ExcelUtil工具类**:这是自定义的一个工具类,封装了jxls库的常用方法,如读取Excel文件、写入Excel文件等。通常,工具类会提供静态方法供其他类调用,以实现Excel操作的便捷化。 2. **读取Excel映射配置文件*...

    导出excel_jxls1.0.2

    2. **jxls-reader-1.0.2.jar**: 这个组件专注于读取数据,它可以解析Excel模板,结合Java对象和数据源,生成填充后的Excel文件。这对于批量生成报告或者数据分析非常有用。 3. **readme.txt**: 这通常是项目的基本...

    jxls-导入导出-java

    `jxls`是一个开源项目,它为Java开发者提供了一种方便的方式来读取和写入Excel文件,尤其适合于批量数据处理和模板化的Excel生成。 `jxls`库基于Apache POI,Apache POI是Java中用于处理Microsoft Office格式文件...

    jxls使用说明

    jXLS是一款强大的Java库,专为处理Excel文件而设计,尤其在批量生成和读取数据方面表现出色。它基于Apache POI库,提供了更高级别的抽象,使得开发者能通过简单的模板机制来操作Excel文档。在jXLS 0.9.8版本中,它...

    jxls1.0.5报表工具

    这个模块主要用于读取Excel文件中的数据。它支持从已有的Excel模板中提取数据,并将其转换为Java对象,这对于数据验证或数据分析非常有用。jxls-reader可以与jxls-core结合使用,实现双向数据绑定,即不仅可以将Java...

    jxls导入导出

    例如,你可以创建一个Excel模板,定义好表格的列名,然后通过jxls读取数据库中的记录,将每条记录的数据填入对应的单元格。 2、**导入导出运用到实际项目** 在实际项目中,jxls可以用于以下场景: - **用户表单...

    Jxls结合Struts2下载

    结合Jxls,Action可以负责读取Excel模板、填充数据,并触发文件下载。 3. **结果类型(Result Type)**:Struts2的结果类型决定了Action执行后如何响应用户。在Jxls结合的例子中,我们可以创建一个自定义的结果类型...

    java 处理Excel 带 List

    使用Apache POI,我们可以创建、修改和读取Excel文件。安装POI库后,我们就可以开始编写代码了。 在Java中导出Excel,首先要创建一个Workbook对象,它是Excel文件的容器。Apache POI提供了多种Workbook类型,如...

    jxl模版生成excel

    JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可读取Excel数据并转换为Java对象。 **描述解析:** 描述中提到的"采用类似EL表达式的方式...

    利用jxl读取excel合并的单元格的一个小例子

    通过一个小例子了解jxl的读取,使用于java初学者。里面用到的包可以在CSDN下载得到。

Global site tag (gtag.js) - Google Analytics