javaexceleclipsebirtbirt-emitter

Could not generate BIRT Report using spudsoft-birt-excel-emitters - Error.InvalidEmitterID


I'm using the BIRT Runtime engine 4.2.1 & following this link.

1.I have moved the following jars to the birt-runtime-4_2_1\ReportEngine\lib folder. uk.co.spudsoft.birt.emitters.excel_0.8.0.201310230652 commons-codec-1.5 dom4j-1.6.1 poi-3.9-20121203 poi-ooxml-3.9-20121203 poi-ooxml-schemas-3.9-20121203 slf4j-api-1.6.2 stax-api-1.0.1 xmlbeans-2.3.0 2.Changed the code to use spudsoft emitter.`public class RunReport {

public static void runReport() throws Exception {

    IReportEngine engine = null;
    EngineConfig config = new EngineConfig();        
    config.setEngineHome("C:/BIRT/BIRT_2_6_1/birt-runtime-4_2_1/birt-runtime-4_2_1/ReportEngine");
     Platform.startup(config);        
    IReportEngineFactory factory = (IReportEngineFactory) Platform
            .createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);        
    engine = factory.createReportEngine(config);
    IReportRunnable design = engine.openReportDesign("C:/reports/csvReport2.rptdesign");
    IRunAndRenderTask task = engine.createRunAndRenderTask(design);     
    IRenderOption options = new RenderOption(); 
    options.setOutputFormat("xls");
    options.setOutputFileName("C:/reports/native.xls");
    options.setEmitterID( "uk.co.spudsoft.birt.emitters.excel.XlsEmitter" );
    task.setRenderOption(options);     
    task.run();
    task.close();

    Platform.shutdown();
    System.out.println("Report Generated Sucessfully!!");
}`

Getting the following error while executing the report.

Jun 05, 2017 9:32:33 AM org.eclipse.birt.report.engine.api.impl.EngineTask setupRenderOption
SEVERE: Error.InvalidEmitterID
org.eclipse.birt.report.engine.api.EngineException: EmitterID uk.co.spudsoft.birt.emitters.excel.XlsEmitter for render option is invalid.
    at org.eclipse.birt.report.engine.api.impl.EngineTask.setupRenderOption(EngineTask.java:2022)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:96)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
    at RunReport.runReport(RunReport.java:49)
    at RunReport.main(RunReport.java:58)
Picked up _JAVA_OPTIONS:  -Xmx512M

Is there any step or configuration that I miss !

Note: I'm trying to use the spudsoft emitter as with the default emitter, below Error prompts while opening the excel.

File format and extension of 'orders.xls' don't match. The file could be corrupted or unsafe. Unless you trust its source, don't open it. Do you want to open it anyway?


Solution

  • I have done couple of changes to make it work !

    Step One Changed the code - to replace default IRenderOption to EXCELRenderOption

    import org.eclipse.birt.core.framework.Platform;
    import org.eclipse.birt.report.engine.api.*;
    public class RunReport {    
        public static void runReport() throws Exception {        
            IReportEngine engine = null;
            EngineConfig config = new EngineConfig();        
            config.setEngineHome("C:/Projects/My Works Related/BIRT/BIRT_2_6_1/birt-runtime-4_2_1/birt-runtime-4_2_1/ReportEngine");
             Platform.startup(config);        
            IReportEngineFactory factory = (IReportEngineFactory) Platform
                    .createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);        
            engine = factory.createReportEngine(config);
            IReportRunnable design = engine.openReportDesign("C:/Projects/My Works Related/Backup From My System and Proton/Backup from Proton/SEM/rk/rk/birt-runtime-Eclipse _workspace2_6_2/eclipse-reporting-helios-SR2-win32/workSpace/ExecuteCSVReport/reports/csvReport2.rptdesign");
            IRunAndRenderTask task = engine.createRunAndRenderTask(design);     
            EXCELRenderOption excelOptions = new EXCELRenderOption();
            excelOptions.setOutputFormat("xls");
            excelOptions.setOutputFileName("C:/Projects/My Works Related/Backup From My System and Proton/Backup from Proton/SEM/rk/rk/birt-runtime-Eclipse _workspace2_6_2/eclipse-reporting-helios-SR2-win32/workSpace/ExecuteCSVReport/reports/native.xls");
            excelOptions.setEmitterID( "uk.co.spudsoft.birt.emitters.excel.XlsEmitter" );
            task.setRenderOption(excelOptions);     
            task.run();
            task.close();        
            Platform.shutdown();
            System.out.println("Report Generated Sucessfully!!");
        }
        public static void main(String[] args) {
            try {
                runReport();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    Step Two Deleted the poi directory in org.eclipse.birt.runtime_4.2.1.v20120918-1113.jar which was placed in the path birt-runtime-4_2_1\ReportEngine\lib to resolve POI conflict issue.