JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活,简单!
JXLS软件首页:http://jxls.sourceforge.net/,SVN源码地址:svn://svn.code.sf.net/p/jxls/code。
使用JXLS生成Excel文件相对较为简单,只需要一个Excel模板和几行代码即可。Excel模板的内容也比较简单,主要是运用标签及集合函数。
JXLS的标签比较常用的有以下几个:
(1) jx:forEach,注意大小写,用于迭代,属性有两个,一个是items,一个是var,其作用、含义和用法与jstl一致;
(2) jx:if,逻辑判断,有一个属性,即test,其作用、含义和用法与jstl一致。
集合函数有以下几个:
(1) sum,求和;
(2) min,取最小;
(3) max,取最大;
(4) ave,求均值;
(5) count,取数量。
JXLS有一个比较大的优势——你可以先设计好Excel的样式,再插入JXLS的标签,最终生成的Excel跟你的设计一模一样——这与POI不同,POI通常要求我们在Java代码中进行样式和字体的设计。
JXLS还有一个特点——你可以直接使用Excel自带的函数。
且看以下模板:
首先这是一个Excel文件,后缀为xls或xlsx,它与普通Excel文档的不同在于,这里面加入了很多标签。
首先是jx:forEach,如果把上图看作一个jsp文件,或许我们会更容易理解一些——迭代reports对象,它可能是一个List或数组,然后分别取出reports中,对象的id、businessType、unaccept等属性的值,分别显示在A列、B列、C列等。
标签会被怎么处理?会不会使得最终生成的Excel文件有一个空行或空列?不会,JXLS在生成Excel时,会把含有标签的那一行删除,你当它不存在就行了。
接着来看jx:if,相当简单的一个判断,还是把它当jsp来看,很容易理解。
$[and(c3)]、$[count(c3)],这是上文提到过的集合函数吗?不是的,这是Excel自带的函数,在Excel中,我们用类似“=and(c3:38)”或“=count(c3:c8)”来计算值,而在JXLS中,这些函数的用法变为$[函数名(列)],为什么在Excel中的“(c3:c8)”变成了“(c3)”呢?因为上图中的C3在jx:forEach中,它代表的已经不是第3行第C列,而是jx:forEach生成的所有行中的第3列。
JXLS提供的集合函数怎么使用?——${count(businessType):reports},表示使用的是JXLS中的count函数,统计reports对象(List或数组)中,对象的businessType的数量,其实,相当于reports数组或对象的长度了。
JXLS提供的集合函数是用大括号括起来的,而Excel自带的函数是用中括号括起来的,Excel自带的函数只需要指定列即可,JXLS提供的集合函数需要指定对象、指定属性。
模板和Java代码怎么对应呢?下文是示例:
- /**
- *
- */
- package com.geloin.jxls.main;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import com.geloin.jxls.beans.Report;
- import net.sf.jxls.transformer.XLSTransformer;
- /**
- * @author Geloin
- *
- */
- public class ReportTest {
- /**
- * @param args
- */
- public static void main(String[] args) throws Exception {
- String tplPath = "d:/work/proTmp/jxls/补换领业务统计报表模板.xlsx";
- String destPath = "d:/work/proTmp/jxls/补换领业务统计报表.xlsx";
- List<Report> reports = new ArrayList<Report>();
- Report r1 = new Report(1, "补领机动车行驶证", 1L, 2L, 3L, 4L, 5L, 6L);
- reports.add(r1);
- Report r2 = new Report(2, "换领机动车行驶证", 11L, 21L, 31L, 41L, 51L, 61L);
- reports.add(r2);
- Map<String, List<Report>> beanParams = new HashMap<String, List<Report>>();
- beanParams.put("reports", reports);
- XLSTransformer former = new XLSTransformer();
- former.transformXLS(tplPath, beanParams, destPath);
- }
- }
显示,最下面四行是生头戏,确切的来说,最下面一行是重头戏,流程其实很简单——指定模板位置和生成的文件的位置,然后生成数据,并把数据置入到一个Map里,Map的key对应于模板中用到的对象,最后用transformXLS直接生成Excel文件。
相关推荐
JXLS(Java Excel Library)是一个强大的开源Java库,它允许开发者通过简单的XML模板来控制Excel文件的内容和格式。这个库简化了Java程序生成复杂Excel报告的过程,提供了高度的灵活性和可扩展性。 首先,我们需要...
Jxls库的核心功能在于提供了一种声明式的方式来处理Excel模板,通过使用Apache POI库来操作Excel文件。它的主要优点是将数据和样式分离,让开发者可以专注于业务逻辑,而无需关心底层Excel表格的细节。 首先,我们...
**Jxls:基于模板生成Excel文件的神器** 在IT行业中,数据处理和报告生成是常见的需求,特别是当需要将大量数据导出为易于查看和分析的格式时,Excel表格成为了首选。而`jxls`正是一个Java库,它提供了一种高效、...
Jxls是一个强大的库,它允许我们使用Java编程语言来操作Excel模板文件,从而简化了这个过程。本篇文章将深入探讨如何利用Jxls库在Java中进行Excel模板文件的操作。 首先,我们需要了解Jxls的基本概念。Jxls是一个...
`jxls-poi`是`jxls`的一个分支,专门针对Apache POI进行优化,支持使用POI API处理Excel文件。Apache POI是一个开源项目,提供了对Microsoft Office格式的读写支持,包括Excel。 首先,让我们了解`jxls`的工作原理...
"使用jxls2.X导出Excel文件"的主题涉及了如何利用Java来生成和操作Excel文档,尤其适用于需要动态生成内容的场景。在这个项目案例中,开发者使用了jxls库的最新版本(jxls2),它是一个强大的工具,能够帮助程序员将...
通过这种方式,你可以轻松地在Java Web项目中实现Excel导出功能,而无需直接操作Excel文件的复杂代码。Jxls库提供了灵活的模板机制,使得数据与格式分离,使得Excel模板的设计和维护变得更加简单。同时,由于Jxls是...
导入操作通常涉及读取Excel文件并将其转换为Java对象;导出则相反,将Java对象转换为Excel文件。 4. **使用JXLS API**:在Java代码中,使用JXLS的API来加载模板,设置数据源,然后将结果写回到新的Excel文件。例如...
标题"jxls 读写Excel"提到了一个名为jxls的工具,这是一款Java库,专门用于处理Excel文件的读写操作。它提供了方便的方式来动态地生成和填充Excel模板,适用于数据报告、批量数据导入导出等场景。 描述中的“jxls...
这个示例展示了如何使用jxls导出包含多个表格和复杂逻辑的Excel文件。通过对示例的分析,你可以了解如何组织模板,以及如何在Java代码中处理这些模板。 6. **优化与扩展** jxls还支持更多的功能,如公式计算、多...
标题 "jxls 下载 excel 的测试" 涉及到的是使用 jxls 库来处理 Excel 文件的一个实际操作。jxls 是一个 Java 库,它扩展了 Apache POI 库的功能,使得在 Java 应用程序中动态地生成和填充 Excel 工作表变得简单。在...
JXLS是一个强大的Java库,专门用于处理Excel文件,它提供了高效的Excel数据导入和导出功能。在2.4.0版本中,JXLS针对JDK 1.6进行了优化,确保了向后兼容性,这对于那些由于各种原因无法升级JDK版本的项目来说是一个...
它利用Apache POI库操作Excel,可以方便地将数据导出到Excel文件,或者从Excel导入数据。在Spring Boot应用中,Jxls可以无缝集成,帮助我们快速实现复杂的数据导出功能,比如自定义样式、合并单元格等。 Logback是...
这个扩展使得JXLS能够与POI协同工作,处理Excel文件。 3. **poi-ooxml-schemas-4.x.x.jar**: Apache POI项目提供的库,包含了Office Open XML(OOXML)的XML架构定义,这些定义用于解析和创建OOXML文件,例如xlsx...
本篇文章将深入探讨如何使用 `jxls2` 库来导出Excel文件,同时参考《使用 jxls2.X 导出excel文件源码》这篇博客文章中的案例进行讲解。 首先,我们需要理解 `jxls2` 的核心概念:模板和转换器。模板是预先设计好的...
2. **效率**:由于使用模板,jxls能够在处理大量数据时保持高效,避免了手动操作Excel的繁琐和低效。 3. **易用性**:通过Freemarker模板,非技术人员也能参与到模板设计中,降低了开发成本。 **应用场景** jxls...
`jxls`是一个基于Apache POI库的扩展,它提供了一种声明式的方式来处理Excel模板,这与传统的通过POI API逐行逐列操作Excel的方式相比,大大提高了代码的可读性和维护性。`jxls`的核心概念是将Excel视为一个模板,...
除了单一Sheet的导出,`jxls2`还支持多Sheet的报表导出,这意味着可以在一个Excel文件中包含多个独立的数据集,这对于报告的组织和阅读非常有帮助。例如,可以将不同部门的数据分别放在不同的Sheet中,或者按照时间...
通过使用POI,你可以直接操作Excel的内部结构,如工作表、单元格、公式等。 首先,让我们了解如何使用POI创建一个简单的Excel文件。你需要创建一个`HSSFWorkbook`对象代表工作簿,然后创建`HSSFSheet`对象表示工作...