org.opengion.plugin.io

## クラス TableWriter_Excel

- java.lang.Object
- - org.opengion.hayabusa.io.AbstractTableWriter
  - - org.opengion.plugin.io.TableWriter_Default
    - - org.opengion.plugin.io.TableWriter_Excel

- すべての実装されたインタフェース:
    TableWriter

      public class TableWriter_Excel
      extends TableWriter_Default

  ネイティブEXCELファイルの書き出しクラスです。 DefaultTableWriter を継承していますので，ラベル，名前，データの出力部のみ オーバーライドして，MIcrosoft Excelファイルの出力機能を実現しています。 出力形式は、openXML形式にも対応しています。 出力ファイルの拡張子が、.xlsならExcel2003のバイナリ形式、.xlsxならExcel2007の openXML形式で出力されます。
  変更履歴:

    4.3.4.3 (2008/12/22) 一部protected化
    4.3.6.7 (2009/05/22) ooxml形式対応

  機能分類
    ファイル出力
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `protected int` | `nRowIndex`

    - ### クラスから継承されたフィールド org.opengion.hayabusa.io.AbstractTableWriter

      `clmNo, dbColumn, dbType, NUMBER, numberOfColumns, NVAR, STRING, table`

    - ### インタフェースから継承されたフィールド org.opengion.hayabusa.io.TableWriter

      `CSV_SEPARATOR, TAB_SEPARATOR`

  - ### コンストラクタのサマリー

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

  - ### メソッドのサマリー

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected org.apache.poi.ss.usermodel.Workbook` | `createWorkbook(java.lang.String fname)` EXCELファイルのWookbookというStream(MicrosoftのOLE用語)を作ります 条件によって、新規かとファイルから読み込み書き込みかが分かれます。
    `protected java.lang.String` | `getNewSheetNameByName(org.apache.poi.ss.usermodel.Workbook workbook, java.lang.String nameSet)` DBTableModelのデータとして書き込むときのシート名をセットします。
    `boolean` | `isExcel()` このクラスが、EXCEL対応機能を持っているかどうかを返します。
    `protected void` | `removeRowCell(org.apache.poi.ss.usermodel.Row oThisRow, int nBegin)` Excelの指定セルをシートから削除する。
    `void` | `setFilename(java.lang.String filename)` 出力先ファイル名をセットします。
    `protected org.apache.poi.ss.usermodel.Row` | `setFirstCellValue(int indexOfRow, int indexOfCell, java.lang.String dataVal)` Excelの指定行の一番目セルにデータを設定する。
    `void` | `setFontName(java.lang.String fontName)` EXCEL出力時のデフォルトフォント名を設定します。
    `void` | `setFontPoint(short point)` EXCEL出力時のデフォルトフォントポイント数を設定します。
    `void` | `setRecalcSheetName(java.lang.String sheet)` EXCELで、出力処理の最後にセルの計算式の再計算をさせるシート名をカンマ区切りで指定します。
    `void` | `setRefFilename(java.lang.String filename)` EXCEL雛型参考ファイル名をセットします。
    `void` | `setRefSheetName(java.lang.String sheetName)` EXCEL雛型参考ファイルのシート名を設定します。
    `protected void` | `setRowCellValue(org.apache.poi.ss.usermodel.Row oThisRow, int indexOfCell, java.lang.String dataVal, int cellType)` Excelの指定セルにデータを設定する。
    `void` | `setSheetName(java.lang.String sheetName)` DBTableModelのデータとして読み込むときのシート名を設定します。
    `void` | `setSheetOverwrite(boolean flag)` Excelで指定したシートが存在した場合に上書きするかどうか。
    `protected void` | `writeClass(DBTableModel table, java.io.PrintWriter writer)` PrintWriter に DBTableModelのクラス名情報を書き込みます。
    `protected void` | `writeData(DBTableModel table, java.io.PrintWriter writer)` PrintWriter に DBTableModelのテーブル情報を書き込みます。
    `void` | `writeDBTable()` DBTableModel から 各形式のデータを作成して,PrintWriter に書き出します。
    `void` | `writeDBTable(java.io.PrintWriter writer)` DBTableModel から データを作成して,PrintWriter に書き出します。
    `protected void` | `writeLabel(DBTableModel table, java.io.PrintWriter writer)` PrintWriter に DBTableModelのラベル情報を書き込みます。
    `protected void` | `writeName(DBTableModel table, java.io.PrintWriter writer)` PrintWriter に DBTableModelの項目名情報を書き込みます。
    `protected void` | `writeSeparator(DBTableModel table, java.io.PrintWriter writer)` PrintWriter に セパレーターを書き込みます。
    `protected void` | `writeSize(DBTableModel table, java.io.PrintWriter writer)` PrintWriter に DBTableModelのサイズ情報を書き込みます。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.io.AbstractTableWriter

      `checkParam, createDBColumn, getDBTableModel, getEncode, getHeaderSequence, getSeparator, isAppend, isUseNumber, isUseRenderer, quotation, quotation2, setAppend, setColumns, setDBTableModel, setEncode, setHeaderSequence, setParam, setSeparator, setSkipRowCount, setUseNumber, setUseRenderer, writeHeader`

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

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

- - ### フィールドの詳細

    - #### nRowIndex

          protected int nRowIndex

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

    - #### TableWriter_Excel

          public TableWriter_Excel()

  - ### メソッドの詳細

    - #### writeDBTable

          public void writeDBTable()

      DBTableModel から 各形式のデータを作成して,PrintWriter に書き出します。 このメソッドは、EXCEL 書き出し時に使用します。
      定義:
        `writeDBTable` インタフェース内 `TableWriter`
      オーバーライド:
        `writeDBTable` クラス内 `TableWriter_Default`
      関連項目:
        `isExcel()`
      変更履歴:

        4.0.0.0 (2006/09/31) 新規追加
        5.1.4.0 (2010/03/01) columns 対応 、useNumber属性対応
        5.9.0.0 (2015/09/04) XLSXの出力をSXSSFWorkbook利用に変更
        5.9.12.1 (2016/09/09) sheetOverwrite,recalcSheetNames

    - #### writeDBTable

          public void writeDBTable(java.io.PrintWriter writer)

      DBTableModel から データを作成して,PrintWriter に書き出します。
      定義:
        `writeDBTable` インタフェース内 `TableWriter`
      オーバーライド:
        `writeDBTable` クラス内 `TableWriter_Default`
      パラメータ:
        `writer` - PrintWriterオブジェクト
      変更履歴:

        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
        3.5.4.3 (2004/01/05) 引数に PrintWriter を受け取るように変更します。
        3.8.5.3 (2006/08/07) フォント名やフォントサイズの指定
        4.0.0.0 (2006/09/31) UnsupportedOperationException を発行します。

    - #### writeLabel

          protected void writeLabel(DBTableModel table,
                        java.io.PrintWriter writer)

      PrintWriter に DBTableModelのラベル情報を書き込みます。 第一カラム目は、ラベル情報を示す "#Label" を書き込みます。 この行は、出力形式に無関係に、TableWriter.TAB_SEPARATOR で区切られます。
      オーバーライド:
        `writeLabel` クラス内 `AbstractTableWriter`
      パラメータ:
        `table` - DBTableModelオブジェクト
        `writer` - PrintWriterオブジェクト
      変更履歴:

        5.1.4.0 (2010/03/01) useNumber属性対応

    - #### writeName

          protected void writeName(DBTableModel table,
                       java.io.PrintWriter writer)

      PrintWriter に DBTableModelの項目名情報を書き込みます。 第一カラム目は、項目名情報を示す "#Name" を書き込みます。 この行は、出力形式に無関係に、TableWriter.TAB_SEPARATOR で区切られます。
      オーバーライド:
        `writeName` クラス内 `AbstractTableWriter`
      パラメータ:
        `table` - DBTableModelオブジェクト
        `writer` - PrintWriterオブジェクト
      変更履歴:

        3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。
        5.1.4.0 (2010/03/01) useNumber属性対応

    - #### writeSize

          protected void writeSize(DBTableModel table,
                       java.io.PrintWriter writer)

      PrintWriter に DBTableModelのサイズ情報を書き込みます。 第一カラム目は、サイズ情報を示す "#Size" を書き込みます。 この行は、出力形式に無関係に、TableWriter.TAB_SEPARATOR で区切られます。
      オーバーライド:
        `writeSize` クラス内 `AbstractTableWriter`
      パラメータ:
        `table` - DBTableModelオブジェクト
        `writer` - PrintWriterオブジェクト
      変更履歴:

        3.5.5.5 (2004/04/23) DBColumn の size と maxlength の 意味を変更
        5.1.4.0 (2010/03/01) useNumber属性対応

    - #### writeClass

          protected void writeClass(DBTableModel table,
                        java.io.PrintWriter writer)

      PrintWriter に DBTableModelのクラス名情報を書き込みます。 第一カラム目は、サイズ情報を示す "#Class" を書き込みます。 この行は、出力形式に無関係に、TableWriter.TAB_SEPARATOR で区切られます。
      オーバーライド:
        `writeClass` クラス内 `AbstractTableWriter`
      パラメータ:
        `table` - DBTableModelオブジェクト
        `writer` - PrintWriterオブジェクト
      変更履歴:

        5.1.4.0 (2010/03/01) useNumber属性対応

    - #### writeSeparator

          protected void writeSeparator(DBTableModel table,
                            java.io.PrintWriter writer)

      PrintWriter に セパレーターを書き込みます。 第一カラム目は、サイズ情報を示す "#----" を書き込みます。 この行は、出力形式に無関係に、TableWriter.TAB_SEPARATOR で区切られます。
      オーバーライド:
        `writeSeparator` クラス内 `AbstractTableWriter`
      パラメータ:
        `table` - DBTableModelオブジェクト
        `writer` - PrintWriterオブジェクト
      変更履歴:

        5.1.4.0 (2010/03/01) useNumber属性対応

    - #### writeData

          protected void writeData(DBTableModel table,
                       java.io.PrintWriter writer)

      PrintWriter に DBTableModelのテーブル情報を書き込みます。 このクラスでは，データを ダブルコーテーション(")で囲みます。 PrintWriter に DBTableModelのテーブル情報を書き込みます。
      オーバーライド:
        `writeData` クラス内 `TableWriter_Default`
      パラメータ:
        `table` - DBTableModelオブジェクト
        `writer` - PrintWriterオブジェクト
      変更履歴:

        3.8.0.1 (2005/06/17) DBTypeが NVAR の場合は、元のUnicodeに戻します。
        3.8.5.3 (2006/08/07) DBType の nativeType に対応した、CELL_TYPE をセットします。
        4.1.1.2 (2008/02/28) NativeタイプをEnum型(fukurou.model.NativeType)に変更
        5.1.4.0 (2010/03/01) columns 対応
        5.1.4.0 (2010/03/01) useNumber属性対応
        5.2.1.0 (2010/10/01) useRenderer 対応
        5.7.6.3 (2014/05/23) stringOutput対応

    - #### setFirstCellValue

          protected org.apache.poi.ss.usermodel.Row setFirstCellValue(int indexOfRow,
                                                          int indexOfCell,
                                                          java.lang.String dataVal)

      Excelの指定行の一番目セルにデータを設定する。
      パラメータ:
        `indexOfRow` - 行の番号
        `indexOfCell` - セルの番号
        `dataVal` - String文字列
      戻り値:
        Rowのobject型
      変更履歴:

        4.3.4.0 (2008/12/01) POI3.2対応
        4.3.4.3 (2008/12/22) protected化

    - #### setRowCellValue

          protected void setRowCellValue(org.apache.poi.ss.usermodel.Row oThisRow,
                             int indexOfCell,
                             java.lang.String dataVal,
                             int cellType)

      Excelの指定セルにデータを設定する。
      パラメータ:
        `oThisRow` - Row型のオブジェクト
        `indexOfCell` - セルの番号
        `dataVal` - String文字列
        `cellType` - [Cell.CELL_TYPE_STRING/Cell.CELL_TYPE_NUMERIC]
      変更履歴:

        4.3.4.0 (2008/12/01) POI3.2対応
        4.3.4.3 (2008/12/22) protected化
        5.7.4.1 (2014/03/15) useRenderer対応
        5.7.6.3 (2014/05/23) stringOutput対応

    - #### removeRowCell

          protected void removeRowCell(org.apache.poi.ss.usermodel.Row oThisRow,
                           int nBegin)

      Excelの指定セルをシートから削除する。
      パラメータ:
        `oThisRow` - Row型のオブジェクト
        `nBegin` - セルの開始番号
      変更履歴:

        4.3.4.0 (2008/12/01) POI3.2対応
        4.3.4.3 (2008/12/22) protected化

    - #### getNewSheetNameByName

          protected java.lang.String getNewSheetNameByName(org.apache.poi.ss.usermodel.Workbook workbook,
                                               java.lang.String nameSet)

      DBTableModelのデータとして書き込むときのシート名をセットします。 初期値は、"Sheet1" です。同じ名称のシートが存在する場合、そのシート 名の後に(2)、(3)のような文字列をくっ付けます。
      パラメータ:
        `workbook` - Workbookオブジェクト
        `nameSet` - String文字列,指定のシート名
      戻り値:
        シート名

    - #### setSheetName

          public void setSheetName(java.lang.String sheetName)

      DBTableModelのデータとして読み込むときのシート名を設定します。 初期値は、"Sheet1" です。 これは、EXCEL追加機能として実装されています。
      定義:
        `setSheetName` インタフェース内 `TableWriter`
      オーバーライド:
        `setSheetName` クラス内 `AbstractTableWriter`
      パラメータ:
        `sheetName` - シート名
      変更履歴:

        3.5.4.2 (2003/12/15) 新規追加

    - #### setRefSheetName

          public void setRefSheetName(java.lang.String sheetName)

      EXCEL雛型参考ファイルのシート名を設定します。 これは、EXCEL追加機能として実装されています。 EXCELファイルを書き出す時に、雛型として参照するシート名を指定します。 これにより、複数の形式の異なるデータを順次書き出したり(appendモードを併用)する ことや、シートを指定して新規にEXCELを作成する場合にフォームを設定する事が可能になります。 初期値は、null(第一シート) です。
      定義:
        `setRefSheetName` インタフェース内 `TableWriter`
      オーバーライド:
        `setRefSheetName` クラス内 `AbstractTableWriter`
      パラメータ:
        `sheetName` - シート名
      変更履歴:

        3.5.4.3 (2004/01/05) 新規追加

    - #### isExcel

          public boolean isExcel()

      このクラスが、EXCEL対応機能を持っているかどうかを返します。 EXCEL対応機能とは、シート名のセット、雛型参照ファイル名のセット、 書き込み元ファイルのFileオブジェクト取得などの、特殊機能です。 本来は、インターフェースを分けるべきと考えますが、taglib クラス等の 関係があり、問い合わせによる条件分岐で対応します。
      定義:
        `isExcel` インタフェース内 `TableWriter`
      オーバーライド:
        `isExcel` クラス内 `AbstractTableWriter`
      戻り値:
        EXCEL対応機能を持っているかどうか(常に true)
      変更履歴:

        3.5.4.3 (2004/01/05) 新規追加

    - #### setFilename

          public void setFilename(java.lang.String filename)

      出力先ファイル名をセットします。(DIR + Filename) これは、EXCEL追加機能として実装されています。
      定義:
        `setFilename` インタフェース内 `TableWriter`
      オーバーライド:
        `setFilename` クラス内 `AbstractTableWriter`
      パラメータ:
        `filename` - EXCEL雛型参考ファイル名
      変更履歴:

        3.5.4.3 (2004/01/05) 新規作成

    - #### setRefFilename

          public void setRefFilename(java.lang.String filename)

      EXCEL雛型参考ファイル名をセットします。(DIR + Filename) これは、EXCEL追加機能として実装されています。
      定義:
        `setRefFilename` インタフェース内 `TableWriter`
      オーバーライド:
        `setRefFilename` クラス内 `AbstractTableWriter`
      パラメータ:
        `filename` - EXCEL雛型参考ファイル名
      変更履歴:

        3.5.4.3 (2004/01/05) 新規作成

    - #### setSheetOverwrite

          public void setSheetOverwrite(boolean flag)

      Excelで指定したシートが存在した場合に上書きするかどうか。
      定義:
        `setSheetOverwrite` インタフェース内 `TableWriter`
      オーバーライド:
        `setSheetOverwrite` クラス内 `AbstractTableWriter`
      パラメータ:
        `flag` - シートを上書きするかどうか[true:上書き/false:別名]
      変更履歴:

        5.9.12.1 (2016/09/09) 新規追加

    - #### setRecalcSheetName

          public void setRecalcSheetName(java.lang.String sheet)

      EXCELで、出力処理の最後にセルの計算式の再計算をさせるシート名をカンマ区切りで指定します。
      定義:
        `setRecalcSheetName` インタフェース内 `TableWriter`
      オーバーライド:
        `setRecalcSheetName` クラス内 `AbstractTableWriter`
      パラメータ:
        `sheet` - 対象シート名
      変更履歴:

        5.9.12.1 (2016/09/09) 新規追加

    - #### setFontName

          public void setFontName(java.lang.String fontName)

      EXCEL出力時のデフォルトフォント名を設定します。 これは、EXCEL追加機能として実装されています。 EXCELファイルを書き出す時に、デフォルトフォント名を指定します。 フォント名は、EXCELのフォント名をそのまま使用してください。 内部的に、POI の org.apache.poi.hssf.usermodel.HSSFFont#setFontName( String ) に設定されます。 初期値は、システムリソース の TABLE_WRITER_DEFAULT_FONT_NAME です。
      定義:
        `setFontName` インタフェース内 `TableWriter`
      オーバーライド:
        `setFontName` クラス内 `AbstractTableWriter`
      パラメータ:
        `fontName` - デフォルトフォント名
      変更履歴:

        3.8.5.3 (2006/08/07) 新規追加

    - #### setFontPoint

          public void setFontPoint(short point)

      EXCEL出力時のデフォルトフォントポイント数を設定します。 これは、EXCEL追加機能として実装されています。 EXCELファイルを書き出す時に、デフォルトポイント数を指定します。 内部的に、POI の org.apache.poi.hssf.usermodel.HSSFFont#setFontHeightInPoints( short ) に設定されます。 初期値は、システムリソース の TABLE_WRITER_DEFAULT_FONT_POINTS です。
      定義:
        `setFontPoint` インタフェース内 `TableWriter`
      オーバーライド:
        `setFontPoint` クラス内 `AbstractTableWriter`
      パラメータ:
        `point` - デフォルトフォントポイント数
      変更履歴:

        3.8.5.3 (2006/08/07) 新規追加

    - #### createWorkbook

          protected org.apache.poi.ss.usermodel.Workbook createWorkbook(java.lang.String fname)

      EXCELファイルのWookbookというStream(MicrosoftのOLE用語)を作ります 条件によって、新規かとファイルから読み込み書き込みかが分かれます。
      パラメータ:
        `fname` - EXCEL雛型参考ファイル名
      戻り値:
        EXCELファイルのWorkbook

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.