Additional Blogs by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
ted_ueda
Employee
Employee
0 Kudos

Quick blog this time.

Crystal Reports for Eclipse 2.0 Service Pack 1 was just released!

It now supports full Microsoft Excel export - not just data-only, but the report, including images, in Excel format!

Java Server Pages code page sample:

bq. java_crj12_web_export_excel.jsp - CR Java SDK to export to Excel<br /><textarea cols="75" rows="10"><%@ page import="com.crystaldecisions.report.web.viewer.CrystalReportViewer,
                 com.crystaldecisions.sdk.occa.report.application.OpenReportOptions,
                 com.crystaldecisions.sdk.occa.report.application.ReportClientDocument,
                 com.crystaldecisions.sdk.occa.report.exportoptions.ReportExportFormat,
                 java.io.ByteArrayInputStream"
%>
<%

String reportPath;

ReportClientDocument reportClientDocument;

ByteArrayInputStream byteArrayInputStream;

byte[] byteArray;

int bytesRead;

reportPath = request.getParameter("report_path");

/*

  • Instantiate ReportClientDocument and specify the Java Print Engine as the report processor.

  • Open a rpt file and export to Excel.  Stream Excel back to web browser.

*/

reportClientDocument = new ReportClientDocument();

reportClientDocument.setReportAppServer(ReportClientDocument.inprocConnectionString);

reportClientDocument.open(reportPath, OpenReportOptions._openAsReadOnly);

byteArrayInputStream = (ByteArrayInputStream) reportClientDocument

        .getPrintOutputController().export(ReportExportFormat.MSExcel);

response.reset();

response.setHeader("Content-disposition", "inline;filename=crreport.xls");

response.setContentType("application/excel");

byteArray = new byte[1024];

while((bytesRead = byteArrayInputStream.read(byteArray)) != -1) {

     response.getOutputStream().write(byteArray, 0, bytesRead);     

}

response.getOutputStream().flush();

response.getOutputStream().close();

reportClientDocument.close();

%>


Have Fun!

1 Comment