zoukankan      html  css  js  c++  java
  • JasperReport使用

    JasperReport介绍

    JasperReport是一个非常强大,易用的开源报表引擎,用Java语言编写。可以导出各种格式的文档,如HTML,PDF,Execel,Word等)

    一、安装Jaspersoft Sutdio

    Jaspersoft Sutdio是一个设计报表的模板工具

    下载Jaspersoft Sutdio CE  下载地址

    二、使用Saspersoft Studio创建模板

    1、创建工程New->Project 

    选择JasperReports Project

    命名为ReportFirst

    2、创建模板

    New-> Jasper Report->

    选择Blank A4,点击Next

    命名为template1.jrxml

    Data Adapter选择One Empty Record,即空数据源。

    3、模板设计界面的区域说明

     Title: 标题区,如果数据有多页只会在第一页打印

    Page Header: 页头区,多页的情况下每页都会打印

    Column Header:列头区,配合下面的Detail区打印列表数据,多页的情况下每页都会打印

    Detail:可以新增多个Detail区,可以组合打印出多个列表数据,多页的情况下每页都会打印

    Column Footer:列表底部区,多页的情况下每页都会打印

    Page Footer:页底部区,多页的情况下每页都会打印

    Summary:合计区,只会在最后一页打印

    4、添加元素

    1) 在右侧Basic Elements区域拖拽一个Static Text,  文字为: This is title head。

    2) 在左侧Outline区域Parameters上右键-> Creat Parameter.

    命名为name, Class为java.lang.String

    3)拖拽那么属性到Page Header

    4) 在左侧Outline区域Fields右键创建两个字段 name,age

     然后将name和age拖拽到Detail区域。

    选择预览,name输入zhangsan,效果如下图所示

    5、编译模板

    生成了template1.jasper文件

    三、在Java中使用模板

    1)引入依赖

            <dependency>
                <groupId>net.sf.jasperreports</groupId>
                <artifactId>jasperreports</artifactId>
                <version>6.12.1</version>
            </dependency>
    

      

    2) 把template1.jasper放入资源文件夹中

    3) 编写生成pdf代码

        @GetMapping("/testJasper")
        public void createPdf(HttpServletRequest request, HttpServletResponse response) throws Exception {
            HashMap<String,Object> params = new HashMap<>();
            params.put("name","title name");
    
            List<HashMap> list = new ArrayList<>();
            for(int i = 0; i < 20; i++){
                HashMap<String,String> item = new HashMap<>(2);
                item.put("name","zhangsan-" + i);
                item.put("age",String.valueOf(i + 10));
                list.add(item);
            }
            
            String templatePath = "templates/template1.jasper";
            JasperReportUtil.exportToPdf(templatePath,params,list, response);
        }
    

      

    exportToPdf方法:

        public static void exportToPdf(String jasperPath, Map parameters, List<?> list, HttpServletResponse response) throws Exception {
            OutputStream outputStream = response.getOutputStream();
            try {
                ClassPathResource resource = new ClassPathResource(jasperPath);
                response.setContentType(getContentType(ReportType.PDF));
                InputStream jasperStream = resource.getInputStream();
                JasperPrint jasperPrint = getJasperPrint(jasperStream, parameters, list);
                JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
            } catch (Exception e) {
                //log.error("读取报表异常", e);
                outputStream.write("读取报表异常".getBytes());
            } finally {
                outputStream.flush();
                outputStream.close();
            }
        }
    

      

    http://127.0.0.1:8080/testJasper

    效果如下图所示:

      Table组件的使用,

    Table 中设置多行显示

    设置链接和锚点

    柱状图的使用: 参考

     参考: JasperReports入门教程

    作者:Work Hard Work Smart
    出处:http://www.cnblogs.com/linlf03/
    欢迎任何形式的转载,未经作者同意,请保留此段声明!

  • 相关阅读:
    Node.js安装及环境配置之Windows篇
    [转]英语论文写作技巧-1
    [转]windows下安装python MySQLdb及问题解决
    SourceTree使用SSH克隆码云项目
    [吴恩达机器学习笔记]16推荐系统5-6协同过滤算法/低秩矩阵分解/均值归一化
    [吴恩达机器学习笔记]16推荐系统3-4协同过滤算法
    [吴恩达机器学习笔记]16推荐系统1-2基于内容的推荐系统
    [吴恩达机器学习笔记]15非监督学习异常检测7-8使用多元高斯分布进行异常检测
    如何求协方差矩阵[转载]
    [吴恩达机器学习笔记]15非监督学习异常检测4-6构建与评价异常检测系统
  • 原文地址:https://www.cnblogs.com/linlf03/p/14880962.html
Copyright © 2011-2022 走看看