Eclipse BIRTを使ってみる (5) - Excelで出力 -
EXCELRenderOptionっていうのがあるので、これを使えばExcelを出力可能。だけど、これを使うとチャートがレンダリングされないっていうのがあったので、NativeXlsっていうエミッターを使う事で対処可能らしい(正確にはOpenDocument Spreadsheetで出さない物っぽい)
とりあえずrtpdesignに関しては適当にデータベースに接続して、集計の結果をチャートで出すっていう感じで作っておく
NativeXlsをインストール
http://code.google.com/a/eclipselabs.org/p/native-excel-emitter-birt-plugin からダウンロードしてインストールする。で今回Mavenを使うので、そのjarのライブラリ自体をローカルMavenリポジトリ?にインストールする
mvn install:install-file \
-Dfile=lib/org.eclipse.birt.report.engine.emitter.nativexls_1.0.0.201110122114.jar \
-DgroupId=org.eclipse.birt.engine \
-DartifactId=emitter-nativexls \
-Dversion=1.0.0_201110122114 \
-Dpackaging=jar
groupIdとかartifactIdとかは自分で決めていいかと。でやったらpom.xmlに追加しておく
<?xml version="1.0" ?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4.0.0.xsd">
<dependencies>
<!-- 追加 -->
<dependency>
<groupId>org.eclipse.birt.engine</groupId>
<artifactId>emitter-nativexls</artifactId>
<version>1.0.0_201110122114</version>
</dependency>
</dependencies>
</project>
Client.java
EXCELRenderOptionに書き換えつつレポート出力する際のエミッターIDをNativeXlsな方向へ向けないといけないので
import org.eclipse.birt.report.engine.api.EXCELRenderOption;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.IReportRunnable;
import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
import org.eclipse.birt.report.engine.api.ReportEngine;
public class Client {
public static void main(String[] args) throws Exception {
EngineConfig config = new EngineConfig();
ReportEngine engine = new ReportEngine(config);
IReportRunnable design = engine.openReportDesign("sample.rptdesign");
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
EXCELRenderOption options = new EXCELRenderOption();
options.setOutputFormat("xls");
options.setEmitterID("org.eclipse.birt.report.engine.emitter.nativexls"); // EmitterIDをNativeXlsなのに修正
task.setRenderOption(options);
task.run();
task.close();
}
}
つー感じで修正。んで実行するとレポートとして