模板是使用特定标记指定如何输出数据的excel文件。jxls提供了内置的标记处理器用于解析excel模板并提取控制指令。必要时也可以自定义的标记。
jxls默认使用Apache jexl表达式,用于在模板中引用对象的属性和方法。对象必须在jxls 的上下文中用key进行关联,如需要输出employee名称,使用${employee.name}
。表达式最基本的语法是使用${
和}
,假设上下文中有使用employee作为key的对象。
示例excel模板文件如下:
上面模板供使用4行。在A1单元格包括批注内容为:jx:area(lastCell="D4")
,其定义模板的根区域为A1:A4
。Each命令用于迭代employees 集合,并填充每个集合元素值(和标记中var属性值保持一致)。each命令的主体区域为A4:D4
(有lastCell属性定义),该区域将随着上下文中每个Employee对象进行复制并处理。
该示例使用XlsCommentAreaBuilder类构建模板中Jxls区域。使用该类可以通过模板批注定义区域。如果你喜欢用java代码实现同样功能,你需要删除模板中的批注。
下面看如何使用Jxls API处理excel 模板,代码很简单:
logger.info("Running Object Collection demo");
List<Employee> employees = generateSampleEmployeeData();
try(InputStream is = ObjectCollectionDemo.class.getResourceAsStream("object_collection_template.xls")) {
try (OutputStream os = new FileOutputStream("target/object_collection_output.xls")) {
Context context = new Context();
context.putVar("employees", employees);
JxlsHelper.getInstance().processTemplate(is, os, context);
首先从classpath路径下加载object_collection_template.xlsx模板文件,然后定义输出报表文件 target/object_collection_output.xlsx。实际处理仅一行代码:
JxlsHelper.getInstance().processTemplate(is, os, context);
JxlsHelper类默认假设你想使用数据覆盖模板sheet。也你选择在另一个sheet中生成数据:
JxlsHelper.getInstance().processTemplateAtCell(is, os, context, "Result!A1");
在输出区域将从Result sheet中A1单元格开始。
最终报表输出如下图:
本文介绍了Jxls库,可以轻松实现基于excel模板生成报表。更多功能读者可以查看官网文档。
1:简介:
jxls是一个简单的、轻量级的excel导出库,使用特定的标记在excel模板文件中来定义输出格式和布局。java中成熟的excel导出工具有poi、jxl,但他们都是使用java代码的方式来导出excel,编码效率很低且不方便维护。
还可以使用一些工具很轻松的实现模板导出。这些工具现在还在维护,而且做得比较好的国内的有easyPOI,国外的就是这个JXLS了。
项目中有很多...
/ 模版文件流(利用这个方法获取到的流是已经关闭的,后面WorkbookFactory.create(is)时报异常-流关闭)// 将数据添加到模版中生成新的excel文件。// transformer转到Excel。// 因此换成了绝对路径获取模板的方法。* 将内容填充到excel模版生成文件。适用于将查询的结果集直接根据模板导出excel。// workbook转换成流。/** 将查询的po对象集合导出 */-- 配置模板导出工具包 -->//查询导出的实体集合。
以下内容 只有excel模板的创建,没有代码的实现代码, spring 使用 jxls 的使用 可自行百度,jxls api 使用所需 数据结构 可下面内容查找
注意: excel 有三个部分内容(标题,固定列,动态列)
// 列名数据
"dynamic_column": [
"label": "xxx系统",
"data_name": "system_no_01"
JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活,简单!
JXLS软件首页:http://jxls.sourceforge.net/,SVN源码地址:svn://svn.code.sf.net/p/jxls/code。
使用JXL
什么是jxls
JXLS 是基于 Jakarta POI API 的 Excel 报表生成工具,可以生成精美的 Excel 格式报表。它采用标签的方式,类似 JSP 标签,写一个 Excel 模板,然后生成报表,非常灵活,简单!
为什么用jxls
Java 有一些用于创建 Excel 文件的库,例如 Apache POI。这些库很棒,但是级别很低,因为它们要求开发人员甚至创建一个简单的 Excel 文件也要编写很多 Java 代码。通常,必须手动设置电子表格
jslx对模板Excel进行导出
jxls是在国外比较受欢迎导出工具,就和国内的easypoi类似,这两者并不冲突,就看个人喜好。我在导出Excel文档时,个人比较喜欢使用jxls,废话不多说,那就直接开干吧
第一步:导入maven坐标
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
最近一直在研究jxls导出问题,目前用的版本是2.4.3,标签都是写在批注中,很方便;最近做的项目需要用到导出多个sheet,导出方法很简单,但是始终会多出一个模板sheet,于是去官网找了例子查看,也都是带有一个Template的sheet,没有说明怎样去掉;找了api,方法jxlsHelper.setDeleteTemplateSheet(true)没有起作用;方法transformer.de...
前几天写导出使用了jxls,网上找了找资料就写了(https://blog.csdn.net/yali_aini/article/details/85804466),后来经理给我说,这个版本太老了,我看了看,果然 我用的那个是 14年更新的,说让我用最新的,我就找到了 jxls 的官网:http://jxls.sourceforge.net/getting_started.html,然后跟着教程...