JasperReports 导出报表成不同格式
精华
小牛编辑
139浏览
2023-03-14
我们在上一章《JasperReports 查看打印报表》中已经看到,如何打印和查看一个 JasperReport 生成的文档。在这里,我们将看到如何将这些报表转换或导出为其他格式,例如 PDF、HTML 和 XLS。Facade 类net.sf.jasperreports.engine.JasperExportManager就是用来实现这个功能的。导出意味着将JasperPrint对象(.jrprint 文件)转换为不同的格式。
以下代码(JasperReportExport.java)演示了JasperReport 文档的导出过程。JasperExportManager 提供了仅将报告导出为 PDF、HTML 和 XML 的方法。为了导出为 XLS 格式,我们使用了类net.sf.jasperreports.engine.export.JRXlsExporter。此代码生成以下三个文件 :
- sample_report.pdf
- sample_report.html
- sample_report.xls
JasperReports 导出为PDF/HTML/XLS格式
package cn.xnip;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.view.JasperViewer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class JasperReportFill {
public static void main(String[] args) {
String sourceFileName = "d:/jasper_report_template.jasper";
String printFileName = null;
DataBeanList DataBeanList = new DataBeanList();
ArrayList<DataBean> dataList = DataBeanList.getDataBeanList();
JRBeanCollectionDataSource beanColDataSource =
new JRBeanCollectionDataSource(dataList);
Map parameters = new HashMap();
try {
printFileName = JasperFillManager.fillReportToFile(sourceFileName,
parameters, beanColDataSource);
if (printFileName != null) {
/**
* 1- export to PDF
*/
JasperExportManager.exportReportToPdfFile(printFileName,
"d:/sample_report.pdf");
/**
* 2- export to HTML
*/
JasperExportManager.exportReportToHtmlFile(printFileName,
"d:/sample_report.html");
/**
* 3- export to Excel sheet
*/
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.INPUT_FILE_NAME,
printFileName);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,
"d:/sample_report.xls");
exporter.exportReport();
}
} catch (JRException e) {
e.printStackTrace();
}
}
}
在D:/目录下会生成三个文件,如下:
随便打开其中一个sample_report.xls文件,如下: