具有 excel 数据源的 Jasper 报告
Jasper report with excel data source
我使用 jasper 设计器(不是 iReport,而是 eclipse 的插件)创建了一个使用 excel 文件作为数据源的报告。
该报告在设计器中工作正常,并且可以毫无问题地从文件中读取数据,但是在将文件编译为 file.jasper
并为其提供 excel 文件路径后,JasperViewer 中没有任何内容!
这是我的代码:
try{
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("DataFile", "jasper_export.xls");
JasperPrint jasperPrint = JasperFillManager.fillReport(new FileInputStream(new File("file.jasper")), parameters,conn);
JasperViewer jv = new JasperViewer(jasperPrint, false);
jv.setVisible(true);
} catch (Exception ex) {
ex.printStackTrace();
}
解决方案:
这段代码完美无缺:
try{
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("param_name", paramValue);
ExcelDataSource ds = new ExcelDataSource(JRLoader.getLocationInputStream(excelFilePath));
String[] columnNames = new String[]{"id", "nom", "iden", "adress", "activity", "compta"};
ds.setColumnNames(columnNames);
JasperPrint jasperPrint = JasperFillManager.fillReport(new FileInputStream(new File(yourJasperFilePath)), parameters, ds);
JasperPrintManager.printReport(jasperPrint, false);
} catch (Exception ex) {
ex.printStackTrace();
}
我使用 jasper 设计器(不是 iReport,而是 eclipse 的插件)创建了一个使用 excel 文件作为数据源的报告。
该报告在设计器中工作正常,并且可以毫无问题地从文件中读取数据,但是在将文件编译为 file.jasper
并为其提供 excel 文件路径后,JasperViewer 中没有任何内容!
这是我的代码:
try{
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("DataFile", "jasper_export.xls");
JasperPrint jasperPrint = JasperFillManager.fillReport(new FileInputStream(new File("file.jasper")), parameters,conn);
JasperViewer jv = new JasperViewer(jasperPrint, false);
jv.setVisible(true);
} catch (Exception ex) {
ex.printStackTrace();
}
解决方案:
这段代码完美无缺:
try{
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("param_name", paramValue);
ExcelDataSource ds = new ExcelDataSource(JRLoader.getLocationInputStream(excelFilePath));
String[] columnNames = new String[]{"id", "nom", "iden", "adress", "activity", "compta"};
ds.setColumnNames(columnNames);
JasperPrint jasperPrint = JasperFillManager.fillReport(new FileInputStream(new File(yourJasperFilePath)), parameters, ds);
JasperPrintManager.printReport(jasperPrint, false);
} catch (Exception ex) {
ex.printStackTrace();
}