1 13 package org.pentaho.plugin.jfreereport.outputs; 14 15 import java.io.IOException ; 16 import java.io.InputStream ; 17 import java.io.OutputStream ; 18 19 import org.jfree.report.JFreeReport; 20 import org.jfree.report.ReportProcessingException; 21 import org.jfree.report.modules.output.table.xls.ExcelProcessor; 22 import org.pentaho.messages.Messages; 23 import org.pentaho.plugin.jfreereport.helper.YieldReportListener; 24 25 30 public class JFreeReportExcelComponent extends AbstractGenerateStreamContentComponent { 31 private static final long serialVersionUID = -2130145967763406737L; 32 33 34 public JFreeReportExcelComponent() { 35 } 36 37 protected String getMimeType() { 38 return "application/vnd.ms-excel"; } 40 41 protected String getExtension() { 42 return ".xls"; } 44 45 protected boolean performExport(final JFreeReport report, final OutputStream outputStream) { 46 try { 47 ExcelProcessor processor = new ExcelProcessor(report); 48 processor.setOutputStream(outputStream); 49 50 if (isDefinedInput(WORKBOOK_PARAM)) { 51 try { 52 InputStream inputStream = getInputStream(WORKBOOK_PARAM); 53 processor.setInputStream(inputStream); 54 } catch (Exception e) { 55 error(Messages.getString("JFreeReportExcelComponent.ERROR_0037_ERROR_READING_REPORT_INPUT"), e); return false; 57 } 58 } 59 60 processor.processReport(); 61 final int yieldRate = getYieldRate(); 62 if (yieldRate > 0) { 63 processor.addRepaginationListener(new YieldReportListener(yieldRate)); 64 } 65 outputStream.close(); 66 return true; 67 } catch (ReportProcessingException e) { 68 return false; 69 } catch (IOException e) { 70 return false; 71 } 72 } 73 } 74 | Popular Tags |