Eclipse RCP入门(七)BIRT2.2.2导出EXCEL

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

}

}

在报表引擎那里这样调用的:

//PDF

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

相关推荐