【JasperReports笔记01】Jasper Studio报表开发工具的安装以及使用Java填充模板文件内容

这篇具有很好参考价值的文章主要介绍了【JasperReports笔记01】Jasper Studio报表开发工具的安装以及使用Java填充模板文件内容。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇文章,主要介绍如何安装Jasper Studio报表开发工具以及使用Java填充模板文件内容。

目录

一、安装Jasper Studio工具

1.1、下载报表开发工具

1.2、工具界面介绍

(1)启动工具

(2)创建项目

二、制作Jasper模板文件

2.1、Jasper文件组成区域介绍

2.2、制作模板文件

三、使用Java填充数据

3.1、引入依赖

3.2、创建JasperReportsUtil工具类

3.3、测试控制器类

3.4、放置Jasper模板文件

3.5、运行测试


一、安装Jasper Studio工具

1.1、下载报表开发工具

JasperReport提供了一个专门用于制作报表模板文件的开发工具,叫做:Jasper Studio,官方下载地址是:https://community.jaspersoft.com/community-download,进入下载界面,如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

点击下载按钮,此时会弹出提示框,点击继续就会跳转到下载详情界面:https://community.jaspersoft.com/project/jaspersoft-studio/releases,如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

在下载详情界面中,可以有多种格式的下载文件,例如:exe、zip、tgz等,这里我选择了zip文件,点击下载就可以啦。需要注意的是下载时候,会提示让你注册JasperReports的社区账号,我们用自己邮箱注册一个就可以啦。将下载完成的zip压缩包解压到你的工作目录下,解压之后,会得到一个jaspersoftstudio目录,如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

这个目录下有一个Jaspersoft Studio.exe文件,双击这个文件就可以启动 JasperReports 报表工具啦。

1.2、工具界面介绍

(1)启动工具

双击Jaspersoft Studio.exe文件,启动JasperReports报表工具,如下图所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

上图就是启动之后的欢迎界面,看着有点像eclipse开发工具对吧!没错,Jasper Studio就是基于Eclipse进行开发的,它可以单独使用,也可以作为Eclipse的插件添加到Eclipse开发工具中使用。

(2)创建项目

左上角选择【File-->New-->Jasper Report】创建一个报表项目,如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

在弹出框中,选择自己需要的模板文件就可以啦,一般来说都是选择A4空白模板,或者是水平方向的A4空白模板,剩下的就是自己设计模板文件啦。

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

输入项目名称,选择数据源之类的,这里可以省略,直接傻瓜式的点击next就行啦,最后点击Finish即可。

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

项目创建成功之后,此时就会进入到Jasper Studio的工作区域,Jasper工作区域大致分为下面这几个部分:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

到这里,Jasper Studio工具安装好了,并且基本的工作区域也知道了,那就可以开始制作自己的模板文件啦。

二、制作Jasper模板文件

2.1、Jasper文件组成区域介绍

可以看到在Jasper Studio的主报表区域有很多的组成部分,如下图所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

Jasper将模板文件划分为上面几个组成部分,每一个组成部分表示的含义不同,其中每一个部分的作用如下所示:

  • Title区域:这个区域只会在模板文件的第一页中显示,从第二页开始就不会显示,主要定义文件的标题内容。
  • Page Header区域:这个区域是从第二页开始,每一页都会显示的页头信息,显示在每一页的最顶部。
  • Column Header区域:当我们使用了Table组件的时候,Column Header区域才会生效,它表示的表格的列头,会在每一页显示。
  • Detail区域:这个区域就是真正显示内容的区域,可以有多个Detail区域。
  • Column Footer区域:当我们使用了Table组件的时候,Column Footer区域才会生效,它表示的表格的列尾,会在每一页显示。
  • Page Footer区域:这个区域是从第二页开始,每一页都会显示的页脚信息,显示在每一页的最底部。
  • Summary区域:这个区域是表示合计区域,只会显示在最后一页的末尾区域。

现在不知道这些东西不要紧,后面的文章中,我会通过制作一些模板文件,来演示一下每一个区域的作用。这里就先做一个简单的模板文件,用于演示一下如何通过Java向模板文件中填充数据。

2.2、制作模板文件

首先删除文件中不需要的区域,选择需要删除的元素,右键点击Delete就行啦:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

只保留Title和Detail两个区域,删除之后的效果如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

从右侧组件元素栏里面,选择【Text Field】组件,将其拖到Title区域中,如下:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

选中刚刚添加的组件,可以编辑它的样式,例如:字体、字体大小、对齐方式等、颜色等属性。在【outline】区域中的【Paramater】,右键创建一个参数,如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

接着在右下角区域的【Properties】中,输入参数名称以及参数对应的Java数据类型,如下:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

参数创建完成之后,就可以再次选择我们的之前拖到Title区域的【Text Field】组件,在右下角【Properties】属性区域,设置组件使用的参数值名称。

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

这里使用的Parameters参数,之后可以通过Java代码直接传递一个Map对象进行数据填充替换,按照这个方式,可以多创建几个测试参数,最终制作的简单模板如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

既然模板文件制作好了,那就可以使用Java语言将需要填充的数据写入到模板文件里面啦。

三、使用Java填充数据

3.1、引入依赖

在实际开发中,一般都是Web工程项目,所以这里是采用SpringBoot工程搭建的一个项目环境,需要引入JasperReports相关的依赖,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.gitcode.demo</groupId>
    <artifactId>jasper-demo</artifactId>
    <version>1.0.0</version>

    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.3.5.RELEASE</version>
    </parent>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- JasperReports 报表开发所需依赖 START -->
        <!-- https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports -->
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>6.20.0</version>
            <exclusions>
                <!--
                    排除自带的itext依赖,因为自带的itext版本是 2.1.7.js10
                    这个版本在中央仓库里面没有,无法下载
                -->
                <exclusion>
                    <groupId>com.lowagie</groupId>
                    <artifactId>itext</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 引入itext依赖,因为JasperReports中使用了itext操作PDF -->
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
        </dependency>
        <!-- JasperReports 报表开发所需依赖 END -->
        <!--
            引入 poi 依赖,因为 jasper 底层操作excel使用的是poi组件
        -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
    </dependencies>
</project>

3.2、创建JasperReportsUtil工具类

为了方便操作Jasper报表,这里在统一的类里面进行报表的处理,代码如下所示:

package com.gitcode.demo.util;

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.export.*;
import org.springframework.core.io.ClassPathResource;

import java.io.InputStream;
import java.util.Map;
import java.util.Objects;

/**
 * @version 1.0.0
 * @Date: 2023/8/7 14:14
 * @Author ZhuYouBin
 * @Description: JasperReports 工具类
 */
public class JasperReportsUtil {

    /**
     * 使用 JasperReports 生成报表文件
     * @param templatePath 模板文件路径及名称
     * @param fileName 生成的文件名称
     * @param fileType 生成的文件类型,例如: pdf、html、xls 等
     * @param parameters 传递到 jrxml 模板文件中的数据参数
     * @return 返回生成的报表文件路径
     */
    public static String generateReport(String templatePath, String fileName, String fileType, Map<String, Object> parameters) throws Exception {
        // 1、获取 jasper 模板文件【采用流的方式读取】
        ClassPathResource resource = new ClassPathResource(templatePath);
        InputStream in = resource.getInputStream();
        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(in);
        // 2、将 parameters 数据参数填充到模板文件中
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
        // 3、按照指定的 fileType 文件类型导出报表文件
        if (Objects.equals("pdf", fileType)) {
            JasperExportManager.exportReportToPdfFile(jasperPrint, fileName + ".pdf");
        } else if (Objects.equals("xls", fileType)) { // 导出 xls 表格
            JRXlsExporter exporter = new JRXlsExporter();
            exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); // 设置导出的输入源
            exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(fileName + ".xls")); // 设置导出的输出源
            // 配置信息
            SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration();
            configuration.setOnePagePerSheet(true); // 每一页一个sheet表格
            exporter.setConfiguration(configuration); // 设置配置对象
            exporter.exportReport(); // 执行导出
        } else if (Objects.equals("xlsx", fileType)) {  // 导出 xlsx 表格
            JRXlsxExporter exporter = new JRXlsxExporter();
            exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); // 设置导出的输入源
            exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(fileName + ".xlsx")); // 设置导出的输出源
            SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration();
            configuration.setOnePagePerSheet(true); // 每一页一个sheet表格
            exporter.setConfiguration(configuration);
            exporter.exportReport(); // 执行导出
        } else if (Objects.equals("html", fileType)) {
            JasperExportManager.exportReportToHtmlFile(jasperPrint, fileName + ".html");
        }
        return null;
    }

}

3.3、测试控制器类

编写一个TestController测试控制器,然后在代码中添加需要填充的模板数据,如下:

package com.gitcode.demo.web;

import com.gitcode.demo.util.JasperReportsUtil;
import net.sf.jasperreports.engine.util.JRResourcesUtil;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.ResourcePatternUtils;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @version 1.0.0
 * @Date: 2023/8/10 21:13
 * @Author ZhuYouBin
 * @Description:
 */
@RestController
@RequestMapping("/api/report")
public class TestController {

    @GetMapping("/export")
    public String exportFile(String format) throws Exception {
        ClassPathResource resource = new ClassPathResource("MyFirstReport.jasper");
        String templatePath = resource.getPath();
        String fileName = "Jasper导出文件";
        /*
         创建传递到 Jasper 模板文件中的数据参数。
         注意:参数的 key 必须和 Jasper Studio 中创建的 Parameters 参数名称相同,否则匹配不上,无法填充数据。
         */
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("titleName", "This is a title.");
        parameters.put("userName", "Tom");
        parameters.put("sex", "man");
        parameters.put("age", "20");
        parameters.put("address", "everywhere.");
        // 执行导出操作
        return JasperReportsUtil.generateReport(templatePath, fileName, format, parameters);
    }

}

3.4、放置Jasper模板文件

将之前制作好的Jasper模板文件编译,编译之后会生成一个【.jasper】后缀的文件,这个文件就是我们要的模板文件,要把这个文件放到工程的【src/main/resources】资源目录里面,如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

3.5、运行测试

启动工程,打开浏览器访问http://localhost:8080/api/report/export?format=pdf地址,此时会在工程目录下,生成对应的文件:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

打开文件查看内容,如下所示:

jasper studio,【WPSP笔记】,JasperReports,Jasper Studio,使用Jasper制作模板文件,Java填充PDF模板文件,报表开发

到此,Jasper Studio报表工具的安装、制作简单模板以及使用Java填充模板文件数据就介绍完啦。

综上,这篇文章结束了,主要介绍如何安装Jasper Studio报表开发工具以及使用Java填充模板文件内容。文章来源地址https://www.toymoban.com/news/detail-770910.html

到了这里,关于【JasperReports笔记01】Jasper Studio报表开发工具的安装以及使用Java填充模板文件内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HarmonyOS开发第一步,熟知开发工具DevEco Studio

    俗话说的好,工欲善其事,必先利其器,走进HarmonyOS第一步,开发工具必须先行,当然了,关于开发工具的使用,官网和其他的博客也有很多的讲解,但是并没有按照常用的功能进行概述,如果需要某个功能,还得需要进行检索查找,十分的不便,基于此,本文主要以常见的

    2024年02月11日
    浏览(298)
  • 【01】基础知识:typescript安装及使用,开发工具vscode配置

    typeScript 是由微软开发的一款开源的编程语言。 typeScript 是 javascript 的超级,遵循最新的 es6、es5规范。 typeScript 扩展了 javaScript 的语法。 typeScript 更像后端 java、C# 这样的面向对象语言,可以让 js 开发大型企业项目。 全局安装:$ npm install -g typescript 查看 typescript 版本:$ ts

    2024年02月13日
    浏览(56)
  • Flutter 开发者工具 Android Studio 开发Flutter应用

    Flutter 开发者工具 在 Android Studio 开发Flutter应用 🔥 Android Studio 版本更新 🔥 Android Studio Check for Update Connection failed ​ 解决方案 ​    ​  🔥 编辑代码,和查看问题 🔥  Dart 插件 可以做到如下几点 :  语法高亮显示。 基于多种类型分析的代码补全。 定位到类型的声明(

    2024年02月15日
    浏览(118)
  • DevEco Studio开发工具下载、安装(HarmonyOS开发)_For Mac

    初学HarmonyOS开发,DevEco Studio开发工具的安装和使用是必须的。 (注:不多废话,跟着下面流程操作下载、安装DevEco Studio即可。) 1.官网下载地址: https://developer.harmonyos.com/cn/develop/deveco-studio 2. 进入官网,选择 “开发” —— “ 应用开发 ” —— “ DevEco Studio ” 3. 找到下载

    2024年02月05日
    浏览(60)
  • CH2-开发工具DevEco Studio

    基本特性HarmonyOS操作系统的功能和特性要得以发挥,需要在它之上运行的APP来体现。 功能强大易用的HarmonyOS移动应用开发工具对HarmonyOS系统的发展至关重要,3.0 Beta1版本的DevEco Studio已经 支持通过可视化布局编辑器构建界面 ,功能越来越齐全和稳定。 本章为HarmonyOS移动应用

    2024年02月09日
    浏览(64)
  • HarmonyOS应用开发工具DevEco Studio安装与使用

    语雀知识库地址:语雀HarmonyOS知识库 飞书知识库地址:飞书HarmonyOS知识库 知识库内容逐步完善中… 工欲善其事必先利其器,要编写HarmonyOS应用就需要用到官方提供的IDE工具来编写相应的代码。 在鸿蒙开发者官网,其提供了官方的开发IDE——DevEco Studio(最新版本3.1.1 Release)

    2024年02月19日
    浏览(64)
  • C语言之开发工具:Visual Studio 2022安装教程

    一,C 语言 C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述

    2024年02月05日
    浏览(62)
  • 【教程】 .Net环境和开发工具Visual Studio的安装

    .NET 是一个免费的跨平台开放源代码开发人员平台,用于生成多种类型的应用程序。 .NET 基于许多大规模应用在生产中使用的高性能运行时构建而来。 Visual Studio IDE 是美国微软公司的开发工具包系列产品,简称为VS。VS是一个基本完整的开发工具集,它包括了整个软件生命周期

    2024年02月02日
    浏览(62)
  • 【常用开发工具】保姆级教程Android Studio安装和基本使用

    🔎这里是【常用开发工具】,关注我学习编程不迷路 如果对你有帮助,给博主一个免费的点赞👍以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 👀专栏介绍 【常用开发工具】 目前更新IDEA、Tomcat、Maven、Git等预计会开10+期,大家一起学习一起进步。 📢📢有写的不好或写错的地

    2023年04月16日
    浏览(64)
  • 鸿蒙开发工具 DevEco Studio 3.0 体验与项目结构介绍

    HuaWei DevEco Studio 是基于 IntelliJ IDEA Community 开源版本打造,面向全场景多设备,提供一站式的应用/服务集成开发环境(IDE),支持分布式多端开发、分布式多端调测、多端模拟仿真,提供全方位的质量与安全保障。 DevEco Studio 3.0支持 HarmonyOS 3.0 的应用及服务开发,提供了代码

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包