org.hanei.jaxcel.report

## クラス ReportMaker

- java.lang.Object
- - org.hanei.jaxcel.report.ReportMaker

-     public class ReportMaker
      extends java.lang.Object

  Excel帳票生成クラス
  テンプレートのExcelファイルにデータを挿入することでExcel帳票を生成する。

  #### テンプレートの書式について

  ##### ${expression}

  値出力。expressionを解析し値を出力する。

  ##### #foreach(${object in aryObject}[ rows:"number"][ cols:"number"][ direction:"row|col"][ style:"copy|^copy"][ shift:"true|false"][ block:"true|false"][ start:"number"][ end:"number"])

  foreach句。配列やListオブジェクト、Mapオブジェクトの繰返し出力を行う。
  プロパティにより、繰返し出力方向の指定や、繰返し回数、出力範囲以降のセルのシフト方法等を指定可能。

  属性 | 説明
  --- | ---
  ${object in aryObject} | "${" 要素オブジェクト in 配列オブジェクト "}" のフォーマットで指定する。配列オブジェクトには配列、List、Mapが使用可能。 rows・colsオプションで指定した範囲内で、要素オブジェクトで指定した名称で各インデックスの要素が出力可能。
  rows | 繰返し元の行数を正の整数で指定する。"1"指定で#foreach指示子が記述された行のみとなる。省略すると規定値である "1"となる。
  cols | 繰返し元の列数を正の整数で指定する。"1"指定で#foreach指示子が記述された列のみとなる。省略すると規定値である "1"となる。
  direction | 繰返し処理の方向を指定する。省略すると規定値である"row"となる。
  row | 行方向に繰返す。
  col | 列方向に繰返す。
  style | 繰返し元範囲(rows・colsオプションで指定する範囲)のセルスタイルのコピーについて指定する。省略すると規定値である"copy"となる。
  copy | セルスタイルをコピーする。
  copy以外 | セルスタイルをコピーしない。
  shift | 繰返し範囲より後方の範囲のシフト方法について指定する。省略すると規定値である"true"となる。
  true | 繰返し範囲より後方の範囲をdirectionオプションで指定した方向にシフトする。
  false | シフトしない。
  block | 矩形範囲での繰返し処理を行うかについて指定する。省略すると規定値である"true"となる。
  true | 繰返し範囲を矩形範囲(rows・colsオプションで指定する範囲)とする。
  false | 繰返し範囲を繰返し元範囲に含まれる行・列全体とする。 directionオプションが"row"の場合、繰返し元範囲に含まれる行全体が繰返し範囲となる。 directionオプションが"col"の場合、繰返し元範囲に含まれる列全体が繰返し範囲となる。
  start | 配列オブジェクトの出力開始インデックス(1起点)を正の整数、もしくは、正の整数を返却する関数で指定する。省略すると規定値である"1"となる。
  end | 配列オブジェクトの出力終了インデックス(1起点)を正の整数、もしくは、正の整数を返却する関数で指定する。省略すると配列オブジェクトの要素数となる。
  startオプションよりendオプションの指定値が小さい場合、配列オブジェクトを降順で出力する。 配列オブジェクトの要素数は"size(配列オブジェクト)"関数で取得可能。

  ##### #if(${expression}[ rows:"number"][ cols:"number"][ delete:"left|up|clear"][ block:"true|false"])

  if句。expression判定式がtrue判定の場合は指定範囲の出力、false判定の場合は指定の方法で範囲を削除する。

  属性 | 説明
  --- | ---
  ${expression} | 判定式。"${" 式 "}" のフォーマットで指定する。Bool値を返す式を指定する。Bool値を返さない式の場合は、値がnullでなければtrueと判断する。
  rows | 制御範囲の行数を正の整数で指定する。"1"指定で#if指示子が記述された行のみとなる。省略すると規定値である "1"となる。
  cols | 制御範囲の列数を正の整数で指定する。"1"指定で#if指示子が記述された列のみとなる。省略すると規定値である "1"となる。
  delete | 判定式がflse判定の場合の制御範囲に対する操作を指定する。省略すると規定値である"left"となる。
  left | 制御範囲セルを削除し、左に詰める。
  up | 制御範囲セルを削除し、上に詰める。
  clear | 制御範囲セルの値・計算式をクリアするのみで詰めない。
  block | 矩形範囲での制御を行うかについて指定する。省略すると規定値である"true"となる。
  true | 制御範囲を矩形範囲(rows・colsオプションで指定する範囲)とする。
  false | 制御範囲を矩形範囲に含まれる行・列全体とする。 deleteオプションが"left"の場合、矩形範囲に含まれる列全体が制御範囲となる。 deleteオプションが"up"の場合、矩形範囲に含まれる行全体が制御範囲となる。 deleteオプションが"clear"の場合は無効。

  バージョン:
    1.00.00
  作成者:
    Noboru Saito

- - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `ReportMaker()` コンストラクタ

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `close()` Excelテンプレートファイルのクローズ テンプレートファイルの変更は保存しません。
    `org.apache.poi.ss.usermodel.Workbook` | `makeReport(java.io.File template, java.util.Map<java.lang.String,java.lang.Object> parameter)` Excelテンプレートファイルにデータを挿入することでExcel帳票を生成、Workbookオブジェクトを返却する。
    `void` | `makeReport(java.io.File template, java.util.Map<java.lang.String,java.lang.Object> parameter, java.io.File output)` Excelテンプレートファイルにデータを挿入することでExcel帳票を生成、Excel帳票ファイルを出力する。
    `void` | `makeReport(java.io.File template, java.util.Map<java.lang.String,java.lang.Object> parameter, java.io.OutputStream output)` Excelテンプレートファイルにデータを挿入することでExcel帳票を生成、出力ストリームにExcel帳票を出力する。
    `org.apache.poi.ss.usermodel.Workbook` | `makeReport(java.io.InputStream template, java.util.Map<java.lang.String,java.lang.Object> parameter)` 入力ストリームのExcelテンプレートファイルにデータを挿入することでExcel帳票を生成、Workbookオブジェクトを返却する。
    `void` | `makeReport(java.io.InputStream template, java.util.Map<java.lang.String,java.lang.Object> parameter, java.io.File output)` 入力ストリームのExcelテンプレートファイルにデータを挿入することでExcel帳票を生成、Excel帳票ファイルを出力する。
    `void` | `makeReport(java.io.InputStream template, java.util.Map<java.lang.String,java.lang.Object> parameter, java.io.OutputStream output)` 入力ストリームのExcelテンプレートファイルにデータを挿入することでExcel帳票を生成、出力ストリームにExcel帳票を出力する。
    `void` | `makeReport(org.apache.poi.ss.usermodel.Workbook book, java.util.Map<java.lang.String,java.lang.Object> parameter)` ExcelテンプレートのWorkbookオブジェクトにデータを挿入することでExcel帳票を生成する。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### ReportMaker

          public ReportMaker()

      コンストラクタ

  - ### メソッドの詳細

    - #### makeReport

          public org.apache.poi.ss.usermodel.Workbook makeReport(java.io.InputStream template,
                                                        java.util.Map<java.lang.String,java.lang.Object> parameter)

      入力ストリームのExcelテンプレートファイルにデータを挿入することでExcel帳票を生成、Workbookオブジェクトを返却する。
      返却されたWorkbookオブジェクトはPOIを使用し、加工・出力が可能。
      入力ストリームは別途クローズが必要。
      Workbookオブジェクトの使用終了後はclose()メソッドでExcelテンプレートファイルのクローズが必要。
      パラメータ:
        `template` - Excelテンプレートファイル入力ストリーム
        `parameter` - テンプレートに挿入するデータ
      戻り値:
        Workbookオブジェクト
      例外:
        `JaxcelInputException` - 入力例外発生時

    - #### makeReport

          public void makeReport(java.io.InputStream template,
                        java.util.Map<java.lang.String,java.lang.Object> parameter,
                        java.io.OutputStream output)

      入力ストリームのExcelテンプレートファイルにデータを挿入することでExcel帳票を生成、出力ストリームにExcel帳票を出力する。
      入出力ストリームは別途クローズが必要。
      パラメータ:
        `template` - Excelテンプレートファイル入力ストリーム
        `parameter` - テンプレートに挿入するデータ
        `output` - Excel帳票出力ストリーム
      例外:
        `JaxcelInputException` - 入力例外発生時
        `JaxcelOutputException` - 出力例外発生時

    - #### makeReport

          public void makeReport(java.io.InputStream template,
                        java.util.Map<java.lang.String,java.lang.Object> parameter,
                        java.io.File output)

      入力ストリームのExcelテンプレートファイルにデータを挿入することでExcel帳票を生成、Excel帳票ファイルを出力する。
      入力ストリームは別途クローズが必要。
      パラメータ:
        `template` - Excelテンプレートファイル入力ストリーム
        `parameter` - テンプレートに挿入するデータ
        `output` - Excel帳票出力ファイル
      例外:
        `JaxcelInputException` - 入力例外発生時
        `JaxcelOutputException` - 出力例外発生時

    - #### makeReport

          public org.apache.poi.ss.usermodel.Workbook makeReport(java.io.File template,
                                                        java.util.Map<java.lang.String,java.lang.Object> parameter)

      Excelテンプレートファイルにデータを挿入することでExcel帳票を生成、Workbookオブジェクトを返却する。
      返却されたWorkbookオブジェクトはPOIを使用し、加工・出力が可能。
      Workbookオブジェクトの使用終了後はclose()メソッドでExcelテンプレートファイルのクローズが必要。
      パラメータ:
        `template` - Excelテンプレートファイル
        `parameter` - テンプレートに挿入するデータ
      戻り値:
        Workbookオブジェクト
      例外:
        `JaxcelInputException` - 入力例外発生時

    - #### makeReport

          public void makeReport(java.io.File template,
                        java.util.Map<java.lang.String,java.lang.Object> parameter,
                        java.io.OutputStream output)

      Excelテンプレートファイルにデータを挿入することでExcel帳票を生成、出力ストリームにExcel帳票を出力する。
      出力ストリームは別途クローズが必要。
      パラメータ:
        `template` - Excelテンプレートファイル
        `parameter` - テンプレートに挿入するデータ
        `output` - Excel帳票出力ストリーム
      例外:
        `JaxcelInputException` - 入力例外発生時
        `JaxcelOutputException` - 出力例外発生時

    - #### makeReport

          public void makeReport(java.io.File template,
                        java.util.Map<java.lang.String,java.lang.Object> parameter,
                        java.io.File output)

      Excelテンプレートファイルにデータを挿入することでExcel帳票を生成、Excel帳票ファイルを出力する。
      パラメータ:
        `template` - Excelテンプレートファイル
        `parameter` - テンプレートに挿入するデータ
        `output` - Excel帳票出力ファイル
      例外:
        `JaxcelInputException` - 入力例外発生時
        `JaxcelOutputException` - 出力例外発生時

    - #### makeReport

          public void makeReport(org.apache.poi.ss.usermodel.Workbook book,
                        java.util.Map<java.lang.String,java.lang.Object> parameter)

      ExcelテンプレートのWorkbookオブジェクトにデータを挿入することでExcel帳票を生成する。
      Workbookオブジェクトの使用終了後はclose()メソッドでExcelテンプレートファイルのクローズが必要。
      パラメータ:
        `book` - Workbookオブジェクト
        `parameter` - テンプレートに挿入するデータ
      例外:
        `JaxcelInputException` - 入力例外発生時

    - #### close

          public void close()

      Excelテンプレートファイルのクローズ
      テンプレートファイルの変更は保存しません。
      例外:
        `JaxcelOutputException` - 出力例外発生時