jasperreport生成多张报表
时间: 2023-11-01 10:07:44 浏览: 165
JasperReport动态生成报表
您好!要生成多张报表,您可以使用JasperReports库来实现。下面是一个简单的示例代码,演示了如何使用JasperReports生成多张报表:
```java
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JasperReportGenerator {
public static void main(String[] args) {
try {
// 创建一个JasperReport对象
JasperReport jasperReport = JasperCompileManager.compileReport("report_template.jrxml");
// 准备数据源
List<Map<String, Object>> dataList = new ArrayList<>();
// 添加第一份报表数据
Map<String, Object> data1 = new HashMap<>();
data1.put("name", "Report 1");
dataList.add(data1);
// 添加第二份报表数据
Map<String, Object> data2 = new HashMap<>();
data2.put("name", "Report 2");
dataList.add(data2);
// 将数据源封装为JRBeanCollectionDataSource对象
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(dataList);
// 设置参数
Map<String, Object> parameters = new HashMap<>();
// 生成第一份报表
JasperPrint jasperPrint1 = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
JasperExportManager.exportReportToPdfFile(jasperPrint1, "report1.pdf");
// 生成第二份报表
JasperPrint jasperPrint2 = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
JasperExportManager.exportReportToPdfFile(jasperPrint2, "report2.pdf");
System.out.println("报表生成成功!");
} catch (JRException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们使用了JasperReports的核心类,如JasperCompileManager、JasperFillManager和JasperExportManager来编译模板、填充数据并导出报表。您需要将报表模板文件(.jrxml)准备好,并将其作为参数传递给`JasperCompileManager.compileReport()`方法。
然后,您可以通过创建一个包含报表数据的List对象,并使用JRBeanCollectionDataSource将其封装为数据源。之后,可以使用JasperFillManager.fillReport()方法来填充数据并生成JasperPrint对象。最后,使用JasperExportManager.exportReportToPdfFile()方法将报表导出为PDF文件。
请确保您已经正确设置了JasperReports的依赖项,并且将报表模板文件正确地放置在指定的位置。
希望这个示例能帮助到您!如有任何问题,请随时提问。
阅读全文