dpy 2010-01-06
EclipseRCP入门(七)BIRT2.2.2导出EXCEL
BIRT导出为HTML和PDF,倒是比较简单,BIRT上有支持。以前的代码中简单的更换一个
HTMLRenderOption和PDFRenderOption就可以了。
但是在导出EXCEL的时候,遇到不少问题。参考了一些文章,大部分是基于BIRT2.2.1的。
其实在2.2.2中已经集成了EXCEL的导出了。可以做得更简单一些。
首先我去下载了BIRT2.2.2的源代码来做为参考,下载的CVS地址如下:
Hostdev.eclipse.org
Repositorypath/cvsroot/birt
Useranonymous
Connectiontypepserver
UseDefaultPortSelected
我下载过来的版本是Versions里面的source里面的2.2.2的最近的Release版本
由于没有CSVRenderOption类,所以我自己新建了一个CSVRenderOption.java:
packagecom.sillycat.birt;
importorg.eclipse.birt.report.engine.api.IRenderOption;
importorg.eclipse.birt.report.engine.api.RenderOption;
publicclassCSVRenderOptionextendsRenderOption{
publicstaticfinalStringOUTPUT_FORMAT_CSV="xls";
publicCSVRenderOption(){
super();
}
publicCSVRenderOption(IRenderOptionoptions){
super(options);
}
}
在报表引擎那里这样调用的:
IRenderOptionpdfOptions;
pdfOptions=newPDFRenderOption();
pdfOptions.setOutputFormat(PDFRenderOption.OUTPUT_FORMAT_PDF);
pdfOptions.setOutputFileName("D:/birt/test.pdf");
task.setRenderOption(pdfOptions);
task.run();
//HTML
IRenderOptionhtmlOptions;
htmlOptions=newHTMLRenderOption();
ByteArrayOutputStreambos=newByteArrayOutputStream();
htmlOptions.setOutputStream(bos);
htmlOptions.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
task.setRenderOption(htmlOptions);
task.run();
browser.setText(bos.toString());
//CSV
IRenderOptioncsvOptions;
csvOptions=newCSVRenderOption();
csvOptions.setOutputFileName("D:/birt/test.xls");
csvOptions.setOutputFormat(CSVRenderOption.OUTPUT_FORMAT_CSV);
task.setRenderOption(csvOptions);
task.run();
//destroythetask
task.close();
engine.destroy();
这样会分别导出为Excel文件,pdf文件,同时用HTML的形式显示在browser上。
同时在plugin.xml和sillycatGen.product上面都要添加上这个包:
org.eclipse.birt.report.engine.emitter.prototype.excel