当前位置: 首页 > 知识库问答 >
问题:

无法使用spudsoft-birt-excel-emitters生成BIRT报告-错误。InvalidEmitterID

缑赤岩
2023-03-14

我正在使用BIRT运行时引擎4.2.1

1.我已将以下jar移动到birt-runtime-4_2_1\ReportEngine\lib文件夹uk.co.spudsoft.birt.emitters.excel_0.8.0.20130230652 commons-codec-1.5 dom4j-1.6.1 poi-3.9-20121203 poi-oxml-3.9-20121203 poi-oxml-schemas-3.9-20112103 slf4j-api-1.6.2 stax-api-1.0.1 xmlbeans-2.3.02.更改代码以使用spudsoft发射器`公共类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!!");
}`

执行报表时收到以下错误。

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

我错过了任何步骤或配置吗!

注意:我正在尝试使用spudsoft发射器作为默认发射器,打开excel时出现以下错误提示。

订单的文件格式和扩展名。xls不匹配。文件可能已损坏或不安全。除非你信任它的来源,否则不要打开它。是否仍要打开它


共有2个答案

巫马正卿
2023-03-14

在我看来,你需要4.4.2版本的spudsoft发射器;

excelOptions.setOutputFormat("xls_spudsoft");
江航
2023-03-14

我已经做了一些改变来使它工作!

步骤一 更改了代码 - 将默认的“更改位置”替换为“EXCEL”更改“选项

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();
        }
    }
}

第二步删除org.eclipse.birt.runtime_4.2.1.v20120918-1113.jar中的poi目录,该目录位于路径birt-runtime-4_2_1\ReportEngine\lib中,以解决poi冲突问题。

 类似资料:
  • 我是BIRT的新手,今天已经为Java和报表开发人员下载了Eclipse IDE。 在完成了一个教程之后,当我准备好预览我的报告时,我点击了“在Web Viewer上查看报告”和许多其他选项,但它总是为我启动Notepad+。 我的IDE有问题吗? 请指教。谢谢你抽出时间。 注意到错误日志中有一些错误,不确定这是否会影响报表的预览: java.lang.NullPointerException

  • 目前,我正在使用Birt Report从我的系统生成报告。我正在使用输入参数将参数从系统发送到Birt Report。问题是当我试图从系统发送多个参数时。 示例:Birt报表中一个参数的SQL语句 当我将此查询用于一个参数时,它起作用了。 我现在努力实现的是, 我试过这样SQL 我已经在数据集和报表参数上创建了参数,但它仍然无法工作

  • 我能看到周围有什么工作示例吗?我从这里下载了这个http://www.it-jw.com/grails/birt-report-test_0.5.ziphttp://grails.org/plugin/birt-report 却一直给我错误 "错误无法解析依赖项" .当我浏览http://repo1.maven.org/maven2/org/它说: 已禁用浏览此目录。改为在 http://sear

  • 我正在使用Birt web报表查看器4.2.1,以及如何将报表查看器语言本地化为俄语,eclipse站点仅为某些IDE提供本地化,

  • BIRT是一个Eclipse-based开放源代码报表系统。它主要是用在基于Java与J2EE的Web应用程序上。BIRT主要由两部分组成:一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。BIRT同时也提供一个图形报表制作引擎。