?? struts+jasperreport.txt
字號:
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{
return prepareReport(mapping, form, request, response);
}
public ActionForward prepareReport(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String expTo = request.getParameter("ext"); // 傳過來的要導出的報表文件后綴
…… ……
…… ……
Map map = new HashMap(); // 準備 map
prepareMapForReport(map);
List list = prepareListForReport(); // 準備 list
if(list == null || list.size() == 0){
throw new Exception();
}
// String fileName = "/reports/new_report1.jasper";
String fileName = getJasperFileName();
。。。。 。。。
// 導出為 PDF
if (expTo.equals("pdf")) {
// pdf
try {
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(servlet.getServletContext().getRealPath(fileName));
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, new JRBeanCollectionDataSource(list));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, baos);
response.reset();
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment;filename=aaa.pdf");
response.setContentLength(baos.size());
ServletOutputStream out = response.getOutputStream();
baos.writeTo(out);
out.flush();
} catch (Exception e) {
}
}else if(expTo.equals("html") || expTo.equals("htm")){
//// 導出為 html
try {
OutputStream outputStream = response.getOutputStream();
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(servlet.getServletContext().getRealPath(fileName));
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, new JRBeanCollectionDataSource(list));
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GB2312");
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "");
exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.FALSE);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, null);
exporter.setParameter(JRHtmlExporterParameter.SIZE_UNIT, "pt");
exporter.exportReport();
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}else if(expTo.equals("excel") ){
// // 導出為 excel
try {
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(servlet.getServletContext().getRealPath(fileName));
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, new JRBeanCollectionDataSource(list));
ServletOutputStream ouputStream = response.getOutputStream();
JRXlsExporter exp = new JRXlsExporter();
ByteArrayOutputStream xlsReport = new ByteArrayOutputStream();
exp.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exp.setParameter(JRExporterParameter.OUTPUT_STREAM, xlsReport);
exp.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exp.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.FALSE);
exp.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exp.exportReport();
byte[] bytes = xlsReport.toByteArray();
xlsReport.close();
response.reset();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=\"file.xls\"");
response.setContentLength(bytes.length);
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (Exception e) {
}
}else if(expTo.equals("rtf") ){
//// 導出為 rtf
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(servlet.getServletContext().getRealPath(fileName));
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, new JRBeanCollectionDataSource(list));
ServletOutputStream ouputStream = response.getOutputStream();
JRRtfExporter exporter = new JRRtfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
// exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "report.rtf");
exporter.exportReport();
// byte[] bytes = ouputStream.toByteArray();
ouputStream.close();
}
return null; // 注意這里需要是 null 。。。 一般 在struts1 里面 是類似 return mapping.findForward("。。。") ;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -