String fileName = "";
ByteArrayOutputStream outPut = new ByteArrayOutputStream();
FileOutputStream outputStream = null;
String reportModelFile = "//Resource//reports//" + reportName +".jasper";
System.out.println(reportModelFile);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(list);//list中装载的是一个个javabean
String szTemp = ExportReport.class.getResource("/").toString();
reportModelFile = szTemp.substring(6,szTemp.length()-17) + reportModelFile;
try {
fileName = DateTimeUtil.getYYYYMMDDHHMMSS() + ".xls";
JasperPrint jasperPrint = new JasperPrint();
jasperPrint = JasperFillManager.fillReport(reportModelFile, null, ds);
JRXlsExporter exporter = new JRXlsExporter();
exporter
.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outPut);
exporter.setParameter(
JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
Boolean.FALSE);
exporter.setParameter(
JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
Boolean.FALSE);
exporter.exportReport();
String szPath = "C:\\szTemp\\fileDownload";
File pathFile = new File(szPath);
if (!pathFile.isDirectory())
pathFile.mkdirs();
File savedFile = new File(pathFile, fileName);
if (savedFile.exists())
savedFile.delete();
outputStream = new FileOutputStream(savedFile);
outputStream.write(outPut.toByteArray(), 0,
outPut.toByteArray().length);
outputStream.flush();
outputStream.close();
} catch (JRException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
outPut.flush();
outPut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return fileName;
}
}
容易忘记加入的jar包如下:
jasperreports相关jar包(ireport工具中一般会自带),commons-digester.jar,poi相关jar