`
gagapear
  • 浏览: 10074 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

JXLS生成报表的常规应用及扩展(上)

阅读更多

JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活简单。

下载地址: http://sourceforge.net/projects/jxls/files/jxls/1.0.6/

下面通过一个简单的实例来描述其常规应用。生成某班级学生信息的报表,首先我们得新建一个Student类,比如有姓名(name), 性别 (sex), 年龄(age)这三个属性。

public class Student {
	private String name;
	private String sex;
	private String age;
	public Student(String name, String sex, String age) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}

 

其次得有个XLS模板来设计数据render的逻辑(因为JXLS生成报表数据都是根据XLS模板的表达式来渲染的)

 

好,现在我们来写个测试方法

@Test
    public void testGenerateReportByJXLS() throws ClassCastException, Exception {
    	/* Mock testing data */
    	List<Student> studentList = new ArrayList<Student>();
        Student stu1 = new Student("ALEX", "MALE", "27");
        Student stu2 = new Student("WILL", "MALE", "23");
        Student stu3 = new Student("FELIX", "MALE", "30");
        studentList.add(stu1);
        studentList.add(stu2);
        studentList.add(stu3);
        /* build important parameter 'beansMap'*/
        Map<String, Object> beansMap = new HashMap<String, Object>();
        beansMap.put("stus", studentList);
        XLSTransformer transformer = new XLSTransformer();
        transformer.transformXLS("C:/student.xls", beansMap, "C:/student_result.xls");
 }
    

 transformXLS方法中第一个参数是模板的位置。第二个参数是beansMap,它可以是多个key-value组合,key即是模板中对应的表达式值,比如这里的${stus},value可以是一个对象集合也可以是一个对象实例。第三个参数是生成最终文件的地址。

结果:

 

如果这个时候需要在报表的上面显示班级的具体信息,比如学院,专业,班级等,这时候要新增一个类来描素这些信息,并且修改原有模板。

public class Grade {
	private String college;
	private String specialities;
	private String className;
	public Grade(String college, String specialities, String className) {
		super();
		this.college = college;
		this.specialities = specialities;
		this.className = className;
	}
	public String getCollege() {
		return college;
	}
	public void setCollege(String college) {
		this.college = college;
	}
	public String getSpecialities() {
		return specialities;
	}
	public void setSpecialities(String specialities) {
		this.specialities = specialities;
	}
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
}

 

 

@Test
    public void testGenerateReportByJXLS() throws ClassCastException, Exception {
    	/* Mock testing data */
    	List<Student> studentList = new ArrayList<Student>();
        Student stu1 = new Student("ALEX", "MALE", "27");
        Student stu2 = new Student("WILL", "MALE", "23");
        Student stu3 = new Student("FELIX", "MALE", "30");
        studentList.add(stu1);
        studentList.add(stu2);
        studentList.add(stu3);
        
        Grade grade = new Grade("College of software", "computer science", "Class 7");
        
        /* build important parameter 'beansMap'*/
        Map<String, Object> beansMap = new HashMap<String, Object>();
        beansMap.put("stus", studentList);
        beansMap.put("grade", grade);
        XLSTransformer transformer = new XLSTransformer();
        transformer.transformXLS("C:/student.xls", beansMap, "C:/student_result.xls");

 

 

 

好!问题来了,是不是以后这个模板要加新的信息进来,比如任课老师的信息,或者说新建别的模板显示学校老师的信息报表,那我们是不是又得去新建对应的java类,比如teacher.java.

如果是这样的话,每次新加新的报表,都得部署服务,重启服务(因为涉及到code的改动),显然在现实场景中这是非常不可取的,那又有什么方法能解决上述的问题呢?在下篇会介绍JXLS的应用扩展。

2
0
分享到:
评论

相关推荐

    jxls 生成报表开发包

    **jxls:强大的Java报表生成库** 在Java开发中,生成报表是一项常见的需求,而`jxls`就是一款专门用于创建动态Excel报表的开源库。它允许开发者使用标准的Java编程方式来定义复杂的Excel模板,并将数据填充到这些...

    使用Apache开源POI和jXLS两种API生成报表

    jXLS 通过提供了一个基于模板的报表生成机制,可以生成具有不同结构和格式的报表。 使用 Apache 开源 POI 和 jXLS 两种 API 可以生成报表。POI 提供了一个纯 Java 实现的 Office 文档格式解析和生成工具,可以对...

    jxls1.0.5报表工具

    **jxls1.0.5报表工具详解** jxls是一个基于Java的库,它扩展了Apache POI库的功能,使得用户能够用简单的Excel模板来创建复杂的动态报告。jxls1.0.5是该工具的一个版本,它提供了一系列增强功能和改进,帮助开发者...

    jxls报表生成利器,比起jxl,poi牛逼得很

    而jxls则在此基础上进一步优化了报表生成的过程。 7. **使用场景**: jxls适合需要动态生成复杂报表,且对模板有较高灵活性需求的项目。对于简单的数据导出,可能直接使用POI即可满足需求。 8. **学习资源**: 要...

    jxls报表demo

    通过学习和实践这个“jxls报表demo”,开发者可以掌握如何有效地使用`jxls`进行动态报表生成,提升工作效率,为业务系统提供更直观的数据呈现方式。同时,了解如何将Excel转换为HTML,也有助于增强对Web开发中数据...

    jxls模板导出Excel教程

    jxls模板导出Excel教程 jxls是一种基于模板的报表生成工具,可以快速生成复杂的Excel报表。通过使用jxls,可以将报表生成过程简化,使其变得更加...* 提高jxls的可扩展性和灵活性,使其能够满足更多的报表生成需求。

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

    在IT行业中,生成灵活的Excel导出是许多应用程序的核心需求,尤其在数据分析、报表生成以及数据交换场景下。本文将详细介绍如何使用JXLS库结合Excel模板来实现这一功能。 JXLS(Java Excel Library)是一个强大的...

    jxls利用模板生成excel文件

    **Jxls:基于模板生成Excel文件的神器** 在IT行业中,数据处理和报告生成是常见的需求,特别是当需要将大量数据导出为易于查看和分析的格式时,Excel...如果你需要在Java应用中生成Excel报表,`jxls`绝对值得一试。

    jxls生成并导出excel所需jar包

    在Java开发中,导出Excel数据是一项常见的任务,特别是在数据分析、报表生成或数据导出等场景。`jxls`是一个非常实用的库,它允许开发者使用JSP标签和Java编程方式来处理Excel模板,从而方便地生成和导出Excel文件。...

    使用Apache开源POI和jXLS两种API生成报表.pdf

    而jXLS则强调模板驱动的方法,简化了报表生成流程,特别是在数据与展示逻辑分离的情况下。选择哪个库取决于具体需求,如需高度自定义和灵活性,POI可能更合适;若追求简洁和模板化,jXLS则是个不错的选择。

    jxls教程Excel生成

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

    jxls1.0-2.0官网示例

    在实际应用中,jxls可以广泛应用于报表生成、数据导出、批量数据处理等场景。例如,在财务系统中,可以用jxls动态生成各类报表,如资产负债表、利润表等;在电商系统中,可以方便地将订单数据导出为Excel,供用户...

    jxls自己写的简单实例

    这个工具极大地简化了在Java应用程序中生成复杂Excel表格的过程,尤其适合那些需要根据数据源动态生成报表的情况。在“jxls自己写的简单实例”中,我们将探讨如何利用Jxls实现横向和纵向排序的功能。 **Jxls工作...

    jxls包——jxls-1.0.1.zip

    jXLS是一个小而易用的Java库,它用于根据XLS模板文件生成Excel数据文件,或者根据XML配置文件从Excel文件中读出数据。 jXLS的功能是:只使用几行代码就可以建立极端复杂的Excel报表。你所需要实现的大部分工作是...

    jxls1.0.1最新版及所有依赖jar包

    通过使用jxls,开发者可以使用Java模板语言(如JEXL)来动态地生成复杂的Excel报告,而无需编写大量的低级代码。 首先,jxls-core-1.0.1.jar是jxls的核心库,包含了主要的功能和API。这个库提供了将Java集合或POJOs...

    jxls2.3 官网最新下载

    - **报告生成**:Jxls适用于需要根据数据库或其他数据源生成定制化Excel报告的场合,例如财务报表、销售统计等。 - **数据导入导出**:可以方便地将Java对象转换为Excel格式,用于数据交换或用户界面的数据输入。 ...

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

    首先,`jxls2`是一个强大的Java库,它扩展了Apache POI库的功能,使得开发者能够以声明式的方式来定义Excel模板,并将Java对象的数据填充到模板中,生成动态的Excel报表。这种工作方式极大地简化了Excel导出的编程...

    使用jxls标签导出Excel说明

    基于jxls标签导出Excel的方式可以简化Excel报表的生成过程,并且可以实现复杂的报表功能。jxls标签可以直接写在Excel模板中,并可以与POI结合使用,生成复杂的Excel报表。 JXLS是一个Java库,用于生成Excel报表。它...

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

    JXLS会根据模板和提供的数据来生成Excel文件。 3. **编写Java代码**:创建一个服务类,定义方法来处理Excel的导入和导出。导入操作通常涉及读取Excel文件并将其转换为Java对象;导出则相反,将Java对象转换为Excel...

Global site tag (gtag.js) - Google Analytics