`
coconut_zhang
  • 浏览: 541722 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

jxls操作excel文件

    博客分类:
  • java
 
阅读更多

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代码怎么对应呢?下文是示例:

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. /** 
  2.  *  
  3.  */  
  4. package com.geloin.jxls.main;  
  5.   
  6. import java.util.ArrayList;  
  7. import java.util.HashMap;  
  8. import java.util.List;  
  9. import java.util.Map;  
  10.   
  11. import com.geloin.jxls.beans.Report;  
  12.   
  13. import net.sf.jxls.transformer.XLSTransformer;  
  14.   
  15. /** 
  16.  * @author Geloin 
  17.  *  
  18.  */  
  19. public class ReportTest {  
  20.   
  21.     /** 
  22.      * @param args 
  23.      */  
  24.     public static void main(String[] args) throws Exception {  
  25.         String tplPath = "d:/work/proTmp/jxls/补换领业务统计报表模板.xlsx";  
  26.         String destPath = "d:/work/proTmp/jxls/补换领业务统计报表.xlsx";  
  27.   
  28.         List<Report> reports = new ArrayList<Report>();  
  29.         Report r1 = new Report(1, "补领机动车行驶证", 1L, 2L, 3L, 4L, 5L, 6L);  
  30.         reports.add(r1);  
  31.   
  32.         Report r2 = new Report(2, "换领机动车行驶证", 11L, 21L, 31L, 41L, 51L, 61L);  
  33.         reports.add(r2);  
  34.   
  35.           
  36.         Map<String, List<Report>> beanParams = new HashMap<String, List<Report>>();  
  37.         beanParams.put("reports", reports);  
  38.         XLSTransformer former = new XLSTransformer();  
  39.         former.transformXLS(tplPath, beanParams, destPath);  
  40.     }  
  41.   
  42. }  


        显示,最下面四行是生头戏,确切的来说,最下面一行是重头戏,流程其实很简单——指定模板位置和生成的文件的位置,然后生成数据,并把数据置入到一个Map里,Map的key对应于模板中用到的对象,最后用transformXLS直接生成Excel文件。

分享到:
评论

相关推荐

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

    JXLS(Java Excel Library)是一个强大的开源Java库,它允许开发者通过简单的XML模板来控制Excel文件的内容和格式。这个库简化了Java程序生成复杂Excel报告的过程,提供了高度的灵活性和可扩展性。 首先,我们需要...

    用Jxls实现数据导入excel实例

    Jxls库的核心功能在于提供了一种声明式的方式来处理Excel模板,通过使用Apache POI库来操作Excel文件。它的主要优点是将数据和样式分离,让开发者可以专注于业务逻辑,而无需关心底层Excel表格的细节。 首先,我们...

    jxls利用模板生成excel文件

    **Jxls:基于模板生成Excel文件的神器** 在IT行业中,数据处理和报告生成是常见的需求,特别是当需要将大量数据导出为易于查看和分析的格式时,Excel表格成为了首选。而`jxls`正是一个Java库,它提供了一种高效、...

    利用jxls操作excel模板文件

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

    jxls-poi导出excel示例代码文件

    `jxls-poi`是`jxls`的一个分支,专门针对Apache POI进行优化,支持使用POI API处理Excel文件。Apache POI是一个开源项目,提供了对Microsoft Office格式的读写支持,包括Excel。 首先,让我们了解`jxls`的工作原理...

    使用 jxls2.X 导出excel文件

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

    java web使用jxls导出excel功能

    通过这种方式,你可以轻松地在Java Web项目中实现Excel导出功能,而无需直接操作Excel文件的复杂代码。Jxls库提供了灵活的模板机制,使得数据与格式分离,使得Excel模板的设计和维护变得更加简单。同时,由于Jxls是...

    SpringBoot(33) 整合JXLS实现Excel导入导出

    导入操作通常涉及读取Excel文件并将其转换为Java对象;导出则相反,将Java对象转换为Excel文件。 4. **使用JXLS API**:在Java代码中,使用JXLS的API来加载模板,设置数据源,然后将结果写回到新的Excel文件。例如...

    jxls 读写Excel

    标题"jxls 读写Excel"提到了一个名为jxls的工具,这是一款Java库,专门用于处理Excel文件的读写操作。它提供了方便的方式来动态地生成和填充Excel模板,适用于数据报告、批量数据导入导出等场景。 描述中的“jxls...

    jxls导出excel官方例子

    这个示例展示了如何使用jxls导出包含多个表格和复杂逻辑的Excel文件。通过对示例的分析,你可以了解如何组织模板,以及如何在Java代码中处理这些模板。 6. **优化与扩展** jxls还支持更多的功能,如公式计算、多...

    jxls 下载 excel 的测试

    标题 "jxls 下载 excel 的测试" 涉及到的是使用 jxls 库来处理 Excel 文件的一个实际操作。jxls 是一个 Java 库,它扩展了 Apache POI 库的功能,使得在 Java 应用程序中动态地生成和填充 Excel 工作表变得简单。在...

    JXLS 2.4.0 excel 导出 可以运行在 JDK 1.6

    JXLS是一个强大的Java库,专门用于处理Excel文件,它提供了高效的Excel数据导入和导出功能。在2.4.0版本中,JXLS针对JDK 1.6进行了优化,确保了向后兼容性,这对于那些由于各种原因无法升级JDK版本的项目来说是一个...

    IDEA+Springboot+gradle+Jxls导出Excel

    它利用Apache POI库操作Excel,可以方便地将数据导出到Excel文件,或者从Excel导入数据。在Spring Boot应用中,Jxls可以无缝集成,帮助我们快速实现复杂的数据导出功能,比如自定义样式、合并单元格等。 Logback是...

    jxls导excel所需的所有jar包

    这个扩展使得JXLS能够与POI协同工作,处理Excel文件。 3. **poi-ooxml-schemas-4.x.x.jar**: Apache POI项目提供的库,包含了Office Open XML(OOXML)的XML架构定义,这些定义用于解析和创建OOXML文件,例如xlsx...

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

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

    jxls 基于模版导出excel

    2. **效率**:由于使用模板,jxls能够在处理大量数据时保持高效,避免了手动操作Excel的繁琐和低效。 3. **易用性**:通过Freemarker模板,非技术人员也能参与到模板设计中,降低了开发成本。 **应用场景** jxls...

    jxls导出excel所用所有jar包

    `jxls`是一个基于Apache POI库的扩展,它提供了一种声明式的方式来处理Excel模板,这与传统的通过POI API逐行逐列操作Excel的方式相比,大大提高了代码的可读性和维护性。`jxls`的核心概念是将Excel视为一个模板,...

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

    除了单一Sheet的导出,`jxls2`还支持多Sheet的报表导出,这意味着可以在一个Excel文件中包含多个独立的数据集,这对于报告的组织和阅读非常有帮助。例如,可以将不同部门的数据分别放在不同的Sheet中,或者按照时间...

    完整的导出EXCEL(poi/jxls)

    通过使用POI,你可以直接操作Excel的内部结构,如工作表、单元格、公式等。 首先,让我们了解如何使用POI创建一个简单的Excel文件。你需要创建一个`HSSFWorkbook`对象代表工作簿,然后创建`HSSFSheet`对象表示工作...

Global site tag (gtag.js) - Google Analytics