【Jasper lab-0009】エクセル形式でダウンロードする時にシートを分ける

ジャスパーレポートを使用して、エクセル形式でダウンロードする時に、表示されているレポートを任意のシートに分ける方法について調査及び研究し、その成果をまとめています。

ジャスパーレポートのエクセル形式でのダウンロード

ジャスパーレポートは、PDF形式だけではなく、エクセル形式でもダウンロードできます。PDFで表示されているように、エクセルにもダウンロードできるので、結構使いがってがあり重宝する機能なのではないかと思います。

iDempiere
iDempiere

オープンソースのERP iDempiereでは、ジャスパーレポートの表示形式を選べるようになっており、エクセル(Excel)を選択すると、エクセルファイルがダウンロードされます。

エクセル形式でダウンロードする時に、レポートの内容を任意のシートに分ける

ジャスパーレポートをエクセルにダウンロードするのは、とても便利な機能なので、場合によってはレポートの内容を任意のシートに分割してダウンロードしたくなるのではないかと思います。

iDempiere
iDempiere

ここでは、1枚名と2枚目のレポートを別々のエクセルシートにダウンロードする事を例に説明します。

シートを分割したい箇所に、Staticテキストを配置して、シート分割の起点とする

Jaspersoft Studioで、シートを分割してダウンロードしたい箇所に、Static Textのエレメントを配置します。配置したStatic Textエレメントは空欄(ブランク)にして下さい。

Jaspersoft Studio
Jaspersoft Studio

配置したStatic Textエレメントのプロパティ設定で、Appearenceタブの最下部にある、Edit Propertiesボタンをクリックします。

Jaspersoft Studio
Jaspersoft Studio

沢山あるプロパティーの中に下記の2つのプロパティがあります。

  • net.sf.jasperreports.export.xls.break.after.row
  • net.sf.jasperreports.export.xls.break.before.row

語尾が"after.row”のプロパティーを"true"にすると、配置したStatic Textエレメントのあとが別シートとなります。語尾が"before.row"のプロパティーを"true"にすると、配置したStatic Textエレメントを含んで、別シートとなります。

jrxml上では、下記のようにstatic Textエレメントに、プロパティーが設定されているのが確認できます。

今回は、わざわざ空欄のStatic Textエレメントを配置していますが、他にシートを分割するのに適しているエレメントが既にレポート内にあるのであれば、それに対して上記のパラメーターを設定して試してみて下さい。

Jaspersoft Studio
Jaspersoft Studio

net.sf.jasperreports.export.xls.break.after.row をtrueにするとStatic Textのエレメントに上記のような表示がされます。

そうすると、net.sf.jasperreports.export.xls.break.after.row をtrueにしたStatic Textエレメントの箇所でエクセルシートを分割してダウンロードする事ができます。

Excel
Excel

エクセルシートの名称

プロパティーの「net.sf.jasperreports.export.xls.sheet.name」を使用すると、ダウンロードするエクセルのシート名も設定できるようです。色々と試してみて下さい。