`
super_robin
  • 浏览: 53354 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

Birt实现Excel分sheet导出

阅读更多
   项目中免不了要用到报表,但是目前开源的Birt又没有提供Excel的份Sheet导出,当然商业报表如润乾报表、FineReport都提供了这些功能,但是毕竟是收费的。所以,我在Birt提供的Api的基础之上,结合Jxl提供的写Excel功能,实现了Birt的分Sheet导出,也算是一个创新吧。下面是一个Demo,需要的拿走,但要记得评论啊。
    Demo中我已测试通过,但也可能会有其他未知Bug,所以在使用过程中遇到问题,也请给我留言,通知我,共同学习,一起进步!
分享到:
评论
23 楼 Semper_Fi 2015-05-17  
如果查询参数的话,怎么搞呢
22 楼 ccy953384950 2015-04-24  
Failed in close the archive
java.lang.NullPointerException
at org.eclipse.birt.report.engine.toc.TOCBuilder.write(TOCBuilder.java:160)
at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.doSaveCoreStreams(ReportDocumentWriter.java:254)
at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.saveCoreStreams(ReportDocumentWriter.java:218)
at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.close(ReportDocumentWriter.java:80)
at org.eclipse.birt.report.engine.api.impl.RunTask.closeReportDocument(RunTask.java:186)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:293)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:91)
at com.bei.demo.BirtReportHandler.exportSheetExcel(BirtReportHandler.java:149)
at com.bei.demo.BirtReportHandler.main(BirtReportHandler.java:264)
Exception in thread "main" java.lang.NoSuchMethodError: org.eclipse.birt.report.model.api.util.DocumentUtil.serialize(Lorg/eclipse/birt/report/model/api/ReportDesignHandle;Ljava/io/OutputStream;)V
at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.saveDesign(ReportDocumentWriter.java:137)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:237)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:91)
at com.bei.demo.BirtReportHandler.exportSheetExcel(BirtReportHandler.java:149)
at com.bei.demo.BirtReportHandler.main(BirtReportHandler.java:264)
这个问题怎样解决啊?
21 楼 ccy953384950 2015-04-24  
Failed in close the archive
java.lang.NullPointerException
at org.eclipse.birt.report.engine.toc.TOCBuilder.write(TOCBuilder.java:160)
at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.doSaveCoreStreams(ReportDocumentWriter.java:254)
at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.saveCoreStreams(ReportDocumentWriter.java:218)
at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.close(ReportDocumentWriter.java:80)
at org.eclipse.birt.report.engine.api.impl.RunTask.closeReportDocument(RunTask.java:186)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:293)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:91)
at com.bei.demo.BirtReportHandler.exportSheetExcel(BirtReportHandler.java:149)
at com.bei.demo.BirtReportHandler.main(BirtReportHandler.java:264)
Exception in thread "main" java.lang.NoSuchMethodError: org.eclipse.birt.report.model.api.util.DocumentUtil.serialize(Lorg/eclipse/birt/report/model/api/ReportDesignHandle;Ljava/io/OutputStream;)V
at org.eclipse.birt.report.engine.api.impl.ReportDocumentWriter.saveDesign(ReportDocumentWriter.java:137)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:237)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:91)
at com.bei.demo.BirtReportHandler.exportSheetExcel(BirtReportHandler.java:149)
at com.bei.demo.BirtReportHandler.main(BirtReportHandler.java:264)
20 楼 shandian811 2014-05-26  
怎么不能下载呢
19 楼 ilyln47 2014-05-06  
学习学习     
18 楼 tfq1013 2013-07-11  
项目刚好要实现这个,回去研究下
17 楼 Fx_demon 2012-07-13  
需要 这玩意 试试
16 楼 zhuting520 2012-05-17  
谢谢
15 楼 bluesky126wc 2012-01-05  
楼下你的能成功运行吗?我的报空指针异常,求请教,谢谢
IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );

factory 输出为null


邮箱:304018335@qq.com
14 楼 IsItLikeThat 2012-01-05  
顶~~~~!
13 楼 bluesky126wc 2011-12-28  
我的报空指针异常,求请教,谢谢
IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );

factory 输出为null
12 楼 simple716 2011-12-25  
正需要这个,谢谢分享!
11 楼 HeyYi 2011-12-19  
我看了你的代码 也看了官网的API 有些不解,有渠道可以交流下吗?比如QQ,邮箱之类的!谢谢哈!
10 楼 HeyYi 2011-12-19  
hob007 写道
我在本机上测试BirtReportHandler的时候报错,帮忙看下什么原因。
loadEngine()没报错,执行到
design = engine.openReportDesign(reportName);
的时候报错,提示找不到class,我需要添加别的类吗?

========下面是具体的报错信息==========
Exception in thread "main" java.lang.NoSuchMethodError: org.eclipse.birt.report.model.metadata.MetaDataDictionary.isIntializedExtension()Z
at org.eclipse.birt.report.model.api.impl.DesignEngineImpl.initialize(DesignEngineImpl.java:106)
at org.eclipse.birt.report.model.api.impl.DesignEngineImpl.newSessionHandle(DesignEngineImpl.java:155)
at org.eclipse.birt.report.model.api.DesignEngine.newSessionHandle(DesignEngine.java:108)
at org.eclipse.birt.report.engine.parser.ReportParser.getDesignHandle(ReportParser.java:143)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:253)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:193)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:127)
at org.eclipse.birt.report.engine.api.impl.ReportEngine.openReportDesign(ReportEngine.java:349)
at com.bei.demo.BirtReportHandler.exportSheetExcel(BirtReportHandler.java:147)
at com.bei.demo.BirtReportHandler.main(BirtReportHandler.java:264)

9 楼 hob007 2010-12-02  
我在本机上测试BirtReportHandler的时候报错,帮忙看下什么原因。
loadEngine()没报错,执行到
design = engine.openReportDesign(reportName);
的时候报错,提示找不到class,我需要添加别的类吗?

========下面是具体的报错信息==========
Exception in thread "main" java.lang.NoSuchMethodError: org.eclipse.birt.report.model.metadata.MetaDataDictionary.isIntializedExtension()Z
at org.eclipse.birt.report.model.api.impl.DesignEngineImpl.initialize(DesignEngineImpl.java:106)
at org.eclipse.birt.report.model.api.impl.DesignEngineImpl.newSessionHandle(DesignEngineImpl.java:155)
at org.eclipse.birt.report.model.api.DesignEngine.newSessionHandle(DesignEngine.java:108)
at org.eclipse.birt.report.engine.parser.ReportParser.getDesignHandle(ReportParser.java:143)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:253)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:193)
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.openReportDesign(ReportEngineHelper.java:127)
at org.eclipse.birt.report.engine.api.impl.ReportEngine.openReportDesign(ReportEngine.java:349)
at com.bei.demo.BirtReportHandler.exportSheetExcel(BirtReportHandler.java:147)
at com.bei.demo.BirtReportHandler.main(BirtReportHandler.java:264)
8 楼 hob007 2010-12-02  
谢谢分享,好人啊
7 楼 super_robin 2010-10-15  
TANHAIWEI 写道
可以用POI实现不?
个人比较喜欢POI,呵呵。
先拿走了...

jxl和poi都是一样的,我里面有一个excel导出类,你要是想用poi的话只需要把里面的导出方法重写就行了
6 楼 yangyiqian 2010-10-04  
不错,正需要这个,谢谢。
5 楼 super_robin 2010-09-10  
pxjianke 写道
你的例子里面的两个sheetTest.rptdesign,sheetTest.rptdocument怎么没有包含进来啊?

最近比较忙,没有上线,不好意思啊
sheetTest.rptdocument个人理解是birt的缓存文件,是有sheetTest.rptdesign计算生成的,具体代码中有,你可以看看
4 楼 pxjianke 2010-08-30  
你的例子里面的两个sheetTest.rptdesign,sheetTest.rptdocument怎么没有包含进来啊?

相关推荐

Global site tag (gtag.js) - Google Analytics