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を解析し値を出力する。

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

  if句。expressionを解析した結果、false判定の場合、指定範囲を設定の方法で削除する。

  属性 | 説明
  --- | ---
  ${expression} | 必須項目。 Bool値を返す式を指定する。Bool値を返さない式の場合は、値がnullでなければtrueと判断する。
  delete | オプション。デフォルト "left" ${expression}がfalse判定の場合のセルに対する操作を指定する。
  left | 左に詰める。
  up | 上に詰める。
  clear | セルの値・計算式をクリアするのみで詰めない。
  block | オプション。デフォルト "true" ブロック範囲での削除操作について指定する。"false"指定で行列全体での削除となる。 deleteオプションが"up"且つ、blockオプション"false"で行全体が削除対象となる。 deleteオプションが"left"且つ、blockオプション"false"で列全体が削除対象となる。
  rows | オプション。デフォルト "1" 影響範囲の行数を指定。"1"指定で#if指示子が存在する行のみとなる。
  cols | オプション。デフォルト "1" 影響範囲の列数を指定。"1"指定で#if指示子が存在する列のみとなる。

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

  foreach句。listObjectで繰返し処理を行う。

  属性 | 説明
  --- | ---
  ${object in listObject} | 必須項目。 オブジェクト in リストオブジェクトのフォーマットでを指定する。リストオブジェクトには配列、List、Mapが使用可能。
  direction | オプション。デフォルト "row" 繰返し処理の方向を指定する。
  row | 行(縦)方向に繰返す。
  col | 列(横)方向に繰返す。
  style | オプション。デフォルト "copy" 繰返し範囲のセルスタイルのコピーについて指定する。
  copy | スタイルを繰返しコピーする。
  copy以外 | スタイルをコピーしない。
  shift | オプション。デフォルト "true" 繰返し範囲より後方の範囲をずらすか（シフトするか）について指定する。
  true | direction方向にシフトする。
  false | シフトしない。
  block | オプション。デフォルト "true" ブロック範囲での繰返し操作について指定する。"false"指定で行列全体での繰返しとなる。 directionオプションが"row"且つ、blockオプションが"false"で行全体が繰返し範囲となる。 directionオプションが"col"且つ、blockオプションが"false"で列全体が繰返し範囲となる。
  rows | オプション。デフォルト "1" 影響範囲の行数を指定。"1"指定で#foreach指示子が存在する行のみとなる。
  cols | オプション。デフォルト "1" 影響範囲の列数を指定。"1"指定で#foreach指示子が存在する列のみとなる。
  start | オプション。デフォルト "1" リストオブジェクトの開始インデックス(1起点)。
  end | オプション。デフォルト リストオブジェクトの要素数 リストオブジェクトの終了インデックス(1起点)。 ※start(開始インデックス)・end(終了インデックス)の指定により、降順ループ(start > end)も可能。 ※リストオブジェクトの要素数はsize(list)で取得可能。

  バージョン:
    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を使用し、加工・出力が可能。
      入力ストリームは別途クローズが必要。
      パラメータ:
        `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を使用し、加工・出力が可能。
      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帳票を生成する。
      Excelテンプレートファイルは別途クローズが必要。
      パラメータ:
        `book` - Workbookオブジェクト
        `parameter` - テンプレートに挿入するデータ
      例外:
        `JaxcelInputException` - 入力例外発生時

    - #### close

          public void close()

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