首先,假设我们打算将一个存放Employee对象的列表输出到Excel中。Employee类定义如下:
publicclassEmployee{ privateString name; privateDate birthDate; privateBigDecimal payment; privateBigDecimal bonus; // ... constructors// ... getters/setters }
为了使用Jxls将这个对象列表输出到excel中,我们需要:
1、添加Jxls依赖的jar包到你的工程中。
2、使用特殊标注创建一个Excel模板。
3、使用Jxls API将Employee数据填充到准备好的模板中。
下面让我们详细看一下每一步使用方法:
添加Jxls依赖的jar包到你的工程中
最简单地使用方法是通过Maven,以添加所需的包到配置文件方式,导入。
可以在Centeral Maven库中获得Jxls jar包。
我们需要添加下面core Jxls依赖:
<dependency> <groupId>org.jxls</groupId> <artifactId>jxls</artifactId> <version>2.3.0</version> </dependency>
或者,你通过Sourceforge下载Jxls分发包,使用分发包里的jar。
除些之外,我们需要添加Jxls transformer engine的实现包,用于实现Java下面操作excel。
由于Jxls不依赖于任何特定的java操作excel包,Jxls定义了一些公共接口。现在Jxls分别实现了两种该接口的包:Apache POI与Java Excel API,分发在不同的jar中。
为了使用Apache POI,需要添加如下依赖:
<dependency> <groupId>org.jxls</groupId> <artifactId>jxls-poi</artifactId> <version>1.0.9</version> </dependency>
为了使用Java Excel API,需要添加如下依赖:
<dependency> <groupId>org.jxls</groupId> <artifactId>jxls-jexcel</artifactId> <version>1.0.6</version> </dependency>
创建Excel模板
模板是写着Jxls如何输出数据的带有特殊标注的excel文件。
Jxls 提供了用于解析模板并提取命令的内部标记处理器。
如果你需要,你也可以自定义的标记处理器。同时,你可以自定义标记,只要保证按照合理方式转换成Jxls命令。
让我们一起看一下Jxls内部的标记处理器。
Jxls默认支持Apache JEXL表达式语言,用于在模板中操作Java对象的属性及方法。该对象必须以某一key保存到Jxls的Context中。例如,我们想将员工的名字输出到excel中,只需要将“${employee.name}”写入单元格中。基本上,只要在Jxls表达式两边加上“${”、“}”,当然保证在Context中可以通过“ employee”取到Employee对象。
可以配置属性标识,你也可以决定使用“[[employee.name]]”作为属性标识。
最终模板如下:
如上所示,在模板中,第4行单元格,我们用JEXL表达式引入了员工对象属性。
单元格A1包含了jx:area(lastCell="D4")内容的标注。它定义了模板的根区域A1:D4。
单元格A4的标注用“jx:each(items="employees" var="employee" lastCell="D4")”定义了Jxls Each循环命令。Each命令遍历Jxls Context中“employees”对应的列表,并将列表中的每个值以“employee”的键存入Context中(通过var定义)。Each命令的内容区域是A4:D4(通过lastCell定义),每一个context的Employee对象都会复制该区域并处理内容。
这个例子使用了XlsCommentAreaBuilder通过模板创建Jxls区域。只要定义Jxls命令到批注中,就可以。如果你通过Java代码定义了命令,你只要将批注删除即可。
使用Jxls API处理模板
下面你可以看到如何通过Jxls API处理excel模板:
... logger.info("Running Object Collection demo"); List<Employee> employees = generateSampleEmployeeData(); try(InputStreamis=ObjectCollectionDemo.class.getResourceAsStream("object_collection_template.xls")){ try(OutputStream os =newFileOutputStream("target/object_collection_output.xls")){ Context context =newContext(); context.putVar("employees", employees); JxlsHelper.getInstance().processTemplate(is, os, context); } } ...
上面例子中我们在classpath中读取模板文件object_collection_template.xls。目标文件会被输出到target/object_collection_output.xls。
一行代码处理主要工作。
JxlsHelper默认输出到模板所在的表单。
你也可以通过下面的方便将结果输出到其它表单。
下面结果会被保存在的Result表单A1单元上。
相关推荐
"使用jxls2.X导出Excel文件"的主题涉及了如何利用Java来生成和操作Excel文档,尤其适用于需要动态生成内容的场景。在这个项目案例中,开发者使用了jxls库的最新版本(jxls2),它是一个强大的工具,能够帮助程序员将...
本篇文章将深入探讨如何使用 `jxls2` 库来导出Excel文件,同时参考《使用 jxls2.X 导出excel文件源码》这篇博客文章中的案例进行讲解。 首先,我们需要理解 `jxls2` 的核心概念:模板和转换器。模板是预先设计好的...
jxls是一个强大的工具,它允许我们使用Apache POI库的功能,但通过使用JSP标签和简单的模板来简化Excel文件的创建过程。下面将详细介绍jxls如何利用模板来实现Excel的导出。 1. **jxls概述**: jxls是一个Java库,...
jxls是一个强大的库,它允许开发者使用Java编程语言和Apache POI库来方便地操作Excel模板,实现动态数据填充和读取。这个工具极大地简化了处理Excel的工作流程,尤其适合批量生成或读取数据的场景。 标题提到的...
- **jar文件**:`jxls-2.3.0.jar`是核心库文件,包含了所有必需的类和方法,用于在Java项目中集成和使用Jxls。将其添加到项目的类路径中,即可开始利用Jxls的功能。 **使用场景** - **报告生成**:Jxls适用于需要...
标题 "Jxls结合Struts2下载" 暗示了一个教程或示例项目,它展示了如何在基于Struts2的Web应用中使用Jxls库来实现动态Excel文件的下载功能。Jxls是一个Java库,它扩展了Apache POI库,使得在Java中处理Excel模板变得...
2. **定义指令**:在模板中使用Jxls的指令,如`jx:each`、`jx:sortCol`、`jx:sortRow`等,来指示数据的处理方式。 3. **编写Java代码**:在Java代码中,加载模板,设置数据源,然后使用Jxls API将数据填充到模板中...
例如,使用${bean.bean1.bean2.bean3.bean4.bean5.bean6.bean7.bean8.bean9.beanX.property1}来访问深度对象属性。 JXLS是一个功能强大且灵活的Java库,用于生成Excel报表。它可以简化Excel报表的生成过程,并且...
jxls2.0支持合并单元格和合并单元格模板写入数据,jar包里已经包含了pom.xml,可以自行解压方便上传到maven私服,这种方式会带上依赖,否则要一个个手动添加依赖.pom在jar包里jxls-core\2.0\jxls-core-2.0\META-INF\...
commons-jexl-2.1.1.jar commons-lang3-3.4.jar commons-logging-1.2.jar jxl-2.6.10.jar log4j-1.2.17.jar poi-3.12.jar poi-ooxml-3.12.jar poi-ooxml-3.12.jar slf4j-api-1.7.7.jar slf4j-log4j12-1.7.7.jar ...
本项目专注于解决这一问题,通过使用`jxls2`库,能够实现复杂Excel模板的导出,包括单元格的合并,满足多种报表导出需求。现在我们将详细探讨这个项目的核心技术和应用场景。 首先,`jxls2`是一个强大的Java库,它...
jxls是一款基于Java的库,它允许开发者通过使用Java编程语言和模板技术来动态生成Excel工作簿。这个库极大地简化了从Java对象到Excel表格的数据转换过程,尤其在处理复杂的数据结构和模板时,其优势更为明显。本文将...
jxls作为比较好的excel模版方案,比poi和easyExcel相对扩展性更高。 demo包含全部官方例子和模版, 2.6官方新增合并单元格标签,jx:mergecells 以及其他相关一切demo,很好的资源,分享给大家,供大家学习交流。 ...
本文将详细介绍如何使用JXLS库结合Excel模板来实现这一功能。 JXLS(Java Excel Library)是一个强大的开源Java库,它允许开发者通过简单的XML模板来控制Excel文件的内容和格式。这个库简化了Java程序生成复杂Excel...
jxls教程 使用Java操作Excel,创建模板生成 jxls教程 使用Java操作Excel,创建模板生成
2. 使用jxls API加载模板和数据源(通常是Java集合)。 3. 应用转换,jxls会根据模板中的指令填充数据。 4. 保存或导出处理后的Excel文件。 在实际项目中,jxls常用于报表生成、数据导入/导出、批量数据处理等场景...
2. **jxls-jexcel-1.0.6.jar** - 这个库是jxls与JExcelAPI(一个开源的Java API,用于读写Excel文件)的桥梁。JExcelAPI支持旧版本的Excel格式(.xls),而jxls通过此库可以与之交互,处理旧版Excel文件格式。 3. ...
**jXLS使用详解** jXLS是一款强大的Java库,专为处理Excel文件而设计,尤其在批量生成和读取数据方面表现出色。它基于Apache POI库,提供了更高级别的抽象,使得开发者能通过简单的模板机制来操作Excel文档。在jXLS...
2. **数据绑定**:通过AOP(面向切面编程)技术,Jxls能够将Java对象的数据自动绑定到Excel单元格,极大地提高了数据处理的效率和准确性。 3. **复杂计算与公式**:除了基本的数据填充,Jxls还支持Excel内置的公式...
你先创建一个Excel模板,包含各个字段的占位符,然后使用jxls的API,传入User集合和模板文件,jxls会自动填充数据并生成最终的Excel文件。 **应用场景** jxls在很多领域都有应用,如报表生成、数据导出、批量数据...