java生成报表_Java 利用 DynamicReports 生成报表讲解

本文介绍了如何利用Java的DynamicReports库快速创建报表,无需使用可视化报表设计工具。DynamicReports基于JasperReports,支持动态报表设计,并能生成PDF、Excel、Word等多种格式的文件。文章通过实例展示了如何配置Maven项目、引入依赖、连接数据库以及编写Java代码实现报表的生成。
摘要由CSDN通过智能技术生成

DynamicReports 是一个基于 JasperReports 进行扩展的 Java 报表库,可用它来快速创建报表而无需可视化报表设计工具。它能够创建动态的报表设计,而无需可视化报表设计工具。可以非常快地创建报表并生成可以展示和打印的文档,也可以导出各种常见的格式如PDF、Excel、Word等。

DynamicReports的特点如下:

1)动态创建报表,完全抛弃设计器来设计

2)快速地创建报表、生成文件、显示、打印或导出到其它许多流行的格式(PDF、Excel、Word)

项目中增加 Maven pom.xml 配置文件,具体内容如下:<?xml  version="1.0" encoding="UTF-8"?>

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

Test

Test

0.0.1-SNAPSHOT

Test

Test

net.sourceforge.dynamicreports

dynamicreports-core

3.0.4

mysql

mysql-connector-java

5.1.22

在项目中选中 pom.xml 文件,右击执行 Run As -> Maven install 引入需要的jar包,再执行eclipse:eclipse命令。

Java 执行生成报表,具体代码如下:package com.yoodb;

import java.awt.Color;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import net.sf.dynamicreports.jasper.builder.JasperReportBuilder;

import net.sf.dynamicreports.report.builder.DynamicReports;

import net.sf.dynamicreports.report.builder.column.Columns;

import net.sf.dynamicreports.report.builder.component.Components;

import net.sf.dynamicreports.report.builder.datatype.DataTypes;

import net.sf.dynamicreports.report.builder.style.StyleBuilder;

import net.sf.dynamicreports.report.constant.HorizontalAlignment;

import net.sf.dynamicreports.report.exception.DRException;

public class ReportDemo {

private static Connection getConn() throws ClassNotFoundException,

SQLException {

Class.forName("com.mysql.jdbc.Driver");

return (Connection) DriverManager.getConnection(

"jdbc:mysql://127.0.0.1:3306/mysql", "root",

"123456");

}

public static void buildReport(Connection conn) {

JasperReportBuilder report = DynamicReports.report();//创建空 JasperReport 报表

//样式属性

StyleBuilder boldStl = DynamicReports.stl.style().bold();//加粗

StyleBuilder centerStl = DynamicReports.stl.style(boldStl)

.setHorizontalAlignment(HorizontalAlignment.CENTER);

StyleBuilder titleStl = DynamicReports.stl.style(centerStl)

.setFontSize(16);//字体大小

StyleBuilder columnTitleStl = DynamicReports.stl.style(centerStl)

.setBorder(DynamicReports.stl.pen1Point())

.setBackgroundColor(Color.LIGHT_GRAY);//设置标题颜色

report.columns(

Columns.column("Select_priv", "Select_priv",DataTypes.stringType())

.setHorizontalAlignment(HorizontalAlignment.CENTER),

Columns.column("Insert_priv", "Insert_priv",DataTypes.stringType())

.setHorizontalAlignment(HorizontalAlignment.CENTER),

Columns.column("Update_priv", "Update_priv",DataTypes.stringType())

.setHorizontalAlignment(HorizontalAlignment.CENTER),

Columns.column("address", "address",DataTypes.stringType())

.setHorizontalAlignment(HorizontalAlignment.CENTER),

Columns.column("plugin", "plugin", DataTypes.stringType()))

.setColumnTitleStyle(columnTitleStl)

.setHighlightDetailEvenRows(true)//行高亮

.title(Components.text("MYSQL USER").setStyle(titleStl))//标题名称

.pageFooter(Components.pageXofY().setStyle(centerStl))//页角

.setDataSource("select *,'www.yoodb.com' address from user", conn);//调用数据源并返回数据

try {

report.show();//显示报表

//report.toPdf(new FileOutputStream("D://test.pdf"));//生成PDF文件

} catch (DRException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String orgs[]) {

Connection conn = null;

try {

conn = getConn();

} catch (ClassNotFoundException | SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

buildReport(conn);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值