天天看点

ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf

ireport5.6.0安装不多说

安装完成后启动可能闪退,主要是ireport5.6.0需要jdk1.7才能运行,1.8就会闪退。

修改ireport jdk

修改 C:\Program Files (x86)\Jaspersoft\iReport-5.6.0\etc\ireport.conf (默认路径) 下

#jdkhome="/path/to/jdk"

jdkhome="C:\programs\Java\jdk1.7.0_71"

模版

ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf
ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf

① 对应代码中paramMap中的变量

② 对应代码中datas中的数据的名称

③ 计算数,需要注意计算类型

ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf
ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf

注意事项

数据中有中文需要设置字体,否则可能打印不出来。

ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf

.jasper是.jrxml编译过后的文件

ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf

数据源设置

ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf
ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf

java代码

public static void main(String[] args) {

String exportType = "xlsx";

String defaultTemplatePath = "D:\\report1.jasper";

Map paramMap = new HashMap<>();

paramMap.put("usid", "[email protected]");

paramMap.put("usna", "张三");

paramMap.put("curDate", DateUtil.date2String(new Date()));

List> datas = new ArrayList<>();

for (int i = 0; i < 3; i++) {

Map temp = new HashMap<>();

temp.put("key1", "key----" + i);

temp.put("val1", "val====" + i);

temp.put("cnt", 1);

datas.add(temp);

}

JRDataSource dataSource = new JRMapCollectionDataSource(datas);

try {

JasperPrint jasperPrint = JasperFillManager.fillReport(defaultTemplatePath, paramMap, dataSource);

String targetFileName = "D:\\test_" + DateUtil.date2String(new Date(), DateUtil.yyyyMMddHHmmss) + "." + exportType;

if ("pdf".equalsIgnoreCase(exportType)) {

JasperExportManager.exportReportToPdfFile(jasperPrint, targetFileName);

} else if ("xlsx".equalsIgnoreCase(exportType)) {

JRXlsxExporter exporter = new JRXlsxExporter();

SimpleXlsxReportConfiguration configuration = new SimpleXlsxReportConfiguration();

configuration.setWhitePageBackground(true);

configuration.setRemoveEmptySpaceBetweenRows(true);// 空行

configuration.setRemoveEmptySpaceBetweenColumns(true);// 空列

exporter.setConfiguration(configuration);

// 设置输入项

ExporterInput exporterInput = new SimpleExporterInput(jasperPrint);

exporter.setExporterInput(exporterInput);

// 设置输出项

OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput(targetFileName);

exporter.setExporterOutput(exporterOutput);

exporter.exportReport();

}

System.out.println("导出成功:" + targetFileName);

} catch (Exception e) {

e.printStackTrace();

}

}

效果预览

ireport java 变量_ireport5.6.0+jasperreports 使用java对象做为数据源导出excel或者Pdf