`
dongmj
  • 浏览: 31789 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jxls 2使用分享

    博客分类:
  • jxls
阅读更多

首先,假设我们打算将一个存放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]]”作为属性标识。
最终模板如下:
Template
 
如上所示,在模板中,第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单元上。
Output
0
0
分享到:
评论
2 楼 dongmj 2017-06-05  
只会得到结果文件,模板不会输出,除非你没有传入模板中用到的参数值,这种情况只会输出模板。
1 楼 匆匆的我 2017-03-09  
那个输出结果和模板文件一起输出的问题怎么解决?输出后只想要结果不想显示模板文件。

相关推荐

    使用 jxls2.X 导出excel文件

    "使用jxls2.X导出Excel文件"的主题涉及了如何利用Java来生成和操作Excel文档,尤其适用于需要动态生成内容的场景。在这个项目案例中,开发者使用了jxls库的最新版本(jxls2),它是一个强大的工具,能够帮助程序员将...

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

    本篇文章将深入探讨如何使用 `jxls2` 库来导出Excel文件,同时参考《使用 jxls2.X 导出excel文件源码》这篇博客文章中的案例进行讲解。 首先,我们需要理解 `jxls2` 的核心概念:模板和转换器。模板是预先设计好的...

    jxls使用模板实现导出excel!

    jxls是一个强大的工具,它允许我们使用Apache POI库的功能,但通过使用JSP标签和简单的模板来简化Excel文件的创建过程。下面将详细介绍jxls如何利用模板来实现Excel的导出。 1. **jxls概述**: jxls是一个Java库,...

    Jxls结合Struts2下载

    标题 "Jxls结合Struts2下载" 暗示了一个教程或示例项目,它展示了如何在基于Struts2的Web应用中使用Jxls库来实现动态Excel文件的下载功能。Jxls是一个Java库,它扩展了Apache POI库,使得在Java中处理Excel模板变得...

    使用jxls标签导出Excel说明

    例如,使用${bean.bean1.bean2.bean3.bean4.bean5.bean6.bean7.bean8.bean9.beanX.property1}来访问深度对象属性。 JXLS是一个功能强大且灵活的Java库,用于生成Excel报表。它可以简化Excel报表的生成过程,并且...

    jxls2.0支持合并单元格

    jxls2.0支持合并单元格和合并单元格模板写入数据,jar包里已经包含了pom.xml,可以自行解压方便上传到maven私服,这种方式会带上依赖,否则要一个个手动添加依赖.pom在jar包里jxls-core\2.0\jxls-core-2.0\META-INF\...

    jxls2 依赖jar包

    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 ...

    jxls自己写的简单实例

    2. **定义指令**:在模板中使用Jxls的指令,如`jx:each`、`jx:sortCol`、`jx:sortRow`等,来指示数据的处理方式。 3. **编写Java代码**:在Java代码中,加载模板,设置数据源,然后使用Jxls API将数据填充到模板中...

    jxls2.3 官网最新下载

    - **jar文件**:`jxls-2.3.0.jar`是核心库文件,包含了所有必需的类和方法,用于在Java项目中集成和使用Jxls。将其添加到项目的类路径中,即可开始利用Jxls的功能。 **使用场景** - **报告生成**:Jxls适用于需要...

    jxls1.0-2.0官网示例

    jxls是一款基于Java的库,它允许开发者通过使用Java编程语言和模板技术来动态生成Excel工作簿。这个库极大地简化了从Java对象到Excel表格的数据转换过程,尤其在处理复杂的数据结构和模板时,其优势更为明显。本文将...

    Excel报表导出,复杂Excel模板导出(带单元格合并),jxls2

    本项目专注于解决这一问题,通过使用`jxls2`库,能够实现复杂Excel模板的导出,包括单元格的合并,满足多种报表导出需求。现在我们将详细探讨这个项目的核心技术和应用场景。 首先,`jxls2`是一个强大的Java库,它...

    jxls2.6兼容2.X版本 demo集合 包含 循环 判断 合并单元格等共33个单独的例子,可以单独执行

    jxls作为比较好的excel模版方案,比poi和easyExcel相对扩展性更高。 demo包含全部官方例子和模版, 2.6官方新增合并单元格标签,jx:mergecells 以及其他相关一切demo,很好的资源,分享给大家,供大家学习交流。 ...

    使用JXLS+Excel模板制作灵活的excel导出

    本文将详细介绍如何使用JXLS库结合Excel模板来实现这一功能。 JXLS(Java Excel Library)是一个强大的开源Java库,它允许开发者通过简单的XML模板来控制Excel文件的内容和格式。这个库简化了Java程序生成复杂Excel...

    jxls教程Excel生成

    jxls教程 使用Java操作Excel,创建模板生成 jxls教程 使用Java操作Excel,创建模板生成

    jxls源码+API+示例代码

    2. 使用jxls API加载模板和数据源(通常是Java集合)。 3. 应用转换,jxls会根据模板中的指令填充数据。 4. 保存或导出处理后的Excel文件。 在实际项目中,jxls常用于报表生成、数据导入/导出、批量数据处理等场景...

    jxls poi jxls-2.2.9.zip

    你先创建一个Excel模板,包含各个字段的占位符,然后使用jxls的API,传入User集合和模板文件,jxls会自动填充数据并生成最终的Excel文件。 **应用场景** jxls在很多领域都有应用,如报表生成、数据导出、批量数据...

    利用jxls操作excel模板文件

    Jxls是一个强大的库,它允许我们使用Java编程语言来操作Excel模板文件,从而简化了这个过程。本篇文章将深入探讨如何利用Jxls库在Java中进行Excel模板文件的操作。 首先,我们需要了解Jxls的基本概念。Jxls是一个...

    使用net.sf.jxls下的jxls-core包进行复杂的Excel导出

    使用net.sf.jxls下的jxls-core包进行复杂的Excel导出

    jxls使用说明

    ### jxls使用说明详解 #### 一、JXLS简介 在开发涉及报表功能的Java应用时,生成Excel表格是一项常见的需求。对于处理.xls文件,Apache POI是业界广泛使用的库,但面对复杂的报表需求时,单纯使用POI编写代码会变...

Global site tag (gtag.js) - Google Analytics