org.bbreak.excella.core.util
クラス PoiUtil

java.lang.Object
  上位を拡張 org.bbreak.excella.core.util.PoiUtil

public final class PoiUtil
extends Object

POI操作ユーティリティクラス

導入されたバージョン:
1.0

フィールドの概要
static String TMP_SHEET_NAME
          一時テンプレートシート名
 
メソッドの概要
static void clearCell(Sheet sheet, CellRangeAddress rangeAddress)
          指定範囲のセルをクリアする。
static void clearMergedRegion(Sheet sheet, CellRangeAddress rangeAddress)
          指定範囲の結合セルをクリアする。
static void clearRange(Sheet sheet, CellRangeAddress rangeAddress)
          指定範囲をクリアする。
static boolean containCellRangeAddress(CellRangeAddress baseAddress, CellRangeAddress targetAddress)
          範囲内に完全に含まれるかを取得する。
static void copyCell(Cell fromCell, Cell toCell)
          セルをコピーする。
static void copyRange(Sheet fromSheet, CellRangeAddress rangeAddress, Sheet toSheet, int toRowNum, int toColumnNum, boolean clearFromRange)
          範囲をコピーする。
static boolean crossRangeAddress(CellRangeAddress baseAddress, CellRangeAddress targetAddress)
          範囲内と重なる部分があるかを取得する。
static void deleteRangeLeft(Sheet sheet, CellRangeAddress rangeAddress)
           
static void deleteRangeUp(Sheet sheet, CellRangeAddress rangeAddress)
           
static Object getCellValue(Cell cell)
          セルの値の取得。
static Object getCellValue(Cell cell, Class<?> propertyClass)
          指定されたクラスに合わせて出来る限り変換した値を返す
static Object getCellValue(Sheet sheet, int rowIndex, int columnIndex)
          シートから指定位置の値を取得する
static Date getJavaDate(double excelDate)
          double型の日付からDate型の日付を取得する
static int getLastColNum(Sheet sheet)
          エクセルシート内のデータのあるセルの 最大列のインデックスを取得する。
static int getLastColumnNum(Sheet sheet, int firstRowIndex, int lastRowIndex)
          行範囲における最終列番号を取得する。
static int getLastRowNum(Sheet sheet, int firstColumnIndex, int lastColmunIndex)
          列範囲における最終行番号を取得する。
static String getSheetName(Cell cell)
          セルを含むシート名の取得
static String getSheetName(Sheet sheet)
          シート名の取得
static void insertRangeDown(Sheet sheet, CellRangeAddress rangeAddress)
          空白範囲を挿入(下方向にシフト)する。
static void insertRangeRight(Sheet sheet, CellRangeAddress rangeAddress)
          空白範囲を挿入(右方向にシフト)する。
static boolean isCellDateFormatted(Cell cell)
          DateUtilがLocalizeされたフォーマット(年,月,日等を含むフォーマット)に対応していないため、 フォーマットの""で囲まれた文字列を除去するようにして対応。
static void prepareCloneSheet(Sheet sheet)
          推奨されていません。 poi-3.5-beta7-20090607.jarより不具合解消
static void setCellValue(Cell cell, Object value)
          セルに値を設定する。
static void setHyperlink(Cell cell, int type, String address)
          セルにハイパーリンクを設定する。
static void writeBook(Workbook workbook, String filename)
          ワークブックの書き込み処理
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

TMP_SHEET_NAME

public static final String TMP_SHEET_NAME
一時テンプレートシート名

関連項目:
定数フィールド値
メソッドの詳細

getCellValue

public static Object getCellValue(Cell cell)
セルの値の取得。 セルのタイプに応じた値を返却する。

注:セルタイプが[CELL_TYPE_ERROR]の場合
・xls形式 :エラーコードを返却(HSSFErrorConstantsに定義)
・xlsx形式 :Excelのエラー値を返却(ex.#DIV/0!、#N/A、#REF!・・・)

パラメータ:
cell - 対象セル
戻り値:

isCellDateFormatted

public static boolean isCellDateFormatted(Cell cell)
DateUtilがLocalizeされたフォーマット(年,月,日等を含むフォーマット)に対応していないため、 フォーマットの""で囲まれた文字列を除去するようにして対応。 DateUtilが対応されたらそっちを使用する。 Bug 47071として報告済み

パラメータ:
cell - 対象セル

getJavaDate

public static Date getJavaDate(double excelDate)
double型の日付からDate型の日付を取得する

パラメータ:
excelDate - double型の日付
戻り値:
Date型の日付

getCellValue

public static Object getCellValue(Sheet sheet,
                                  int rowIndex,
                                  int columnIndex)
シートから指定位置の値を取得する

パラメータ:
sheet - 対象シート
rowIndex - 対象行インデックス
columnIndex - 対象列インデックス
戻り値:
指定位置のセルの値

getCellValue

public static Object getCellValue(Cell cell,
                                  Class<?> propertyClass)
指定されたクラスに合わせて出来る限り変換した値を返す

パラメータ:
cell - 対象のセル
propertyClass - 欲しいJavaのクラス
戻り値:
取得した値

getSheetName

public static String getSheetName(Cell cell)
セルを含むシート名の取得

パラメータ:
cell - 対象セル
戻り値:
シート名

getSheetName

public static String getSheetName(Sheet sheet)
シート名の取得

パラメータ:
sheet - 対象シート
戻り値:
シート名

writeBook

public static void writeBook(Workbook workbook,
                             String filename)
                      throws IOException
ワークブックの書き込み処理

パラメータ:
workbook - 対象ワークブック
filename - 対象ファイル名
例外:
IOException - ファイル書き込み処理失敗時

copyCell

public static void copyCell(Cell fromCell,
                            Cell toCell)
セルをコピーする。

パラメータ:
fromCell - コピー元セル
toCell - コピー先セル

copyRange

public static void copyRange(Sheet fromSheet,
                             CellRangeAddress rangeAddress,
                             Sheet toSheet,
                             int toRowNum,
                             int toColumnNum,
                             boolean clearFromRange)
範囲をコピーする。

パラメータ:
fromSheet - コピー元シート
rangeAddress - コピー元範囲
toSheet - コピー先シート
toRowNum - コピー先行座標
toColumnNum - コピー先列座標
clearFromRange - コピー元範囲クリア有無

insertRangeDown

public static void insertRangeDown(Sheet sheet,
                                   CellRangeAddress rangeAddress)
空白範囲を挿入(下方向にシフト)する。

パラメータ:
sheet - 対象シート
rangeAddress - 挿入範囲

getLastRowNum

public static int getLastRowNum(Sheet sheet,
                                int firstColumnIndex,
                                int lastColmunIndex)
列範囲における最終行番号を取得する。

パラメータ:
sheet - 対象シート
firstColumnIndex - 開始列
lastColmunIndex - 終了列
戻り値:
最終行番号

insertRangeRight

public static void insertRangeRight(Sheet sheet,
                                    CellRangeAddress rangeAddress)
空白範囲を挿入(右方向にシフト)する。

パラメータ:
sheet - 対象シート
rangeAddress - 挿入範囲

getLastColumnNum

public static int getLastColumnNum(Sheet sheet,
                                   int firstRowIndex,
                                   int lastRowIndex)
行範囲における最終列番号を取得する。

パラメータ:
sheet - 対象シート
firstRowIndex - 開始行
lastRowIndex - 終了行
戻り値:
最終列番号

deleteRangeUp

public static void deleteRangeUp(Sheet sheet,
                                 CellRangeAddress rangeAddress)

deleteRangeLeft

public static void deleteRangeLeft(Sheet sheet,
                                   CellRangeAddress rangeAddress)

clearRange

public static void clearRange(Sheet sheet,
                              CellRangeAddress rangeAddress)
指定範囲をクリアする。

パラメータ:
sheet - 対象シート
rangeAddress - 対象範囲

clearCell

public static void clearCell(Sheet sheet,
                             CellRangeAddress rangeAddress)
指定範囲のセルをクリアする。

パラメータ:
sheet - 対象シート
rangeAddress - 対象範囲

clearMergedRegion

public static void clearMergedRegion(Sheet sheet,
                                     CellRangeAddress rangeAddress)
指定範囲の結合セルをクリアする。

パラメータ:
sheet - 対象シート
rangeAddress - 対象範囲

prepareCloneSheet

public static void prepareCloneSheet(Sheet sheet)
推奨されていません。 poi-3.5-beta7-20090607.jarより不具合解消

シートクローンのエラー回避用の事前処理を行う。
CellがCELL_TYPE_BLANKのものが行内に2つ連続した場合にエラーが発生するため、空文字を設定する。

パラメータ:
sheet - シート
関連項目:
cloneSheet(int)

crossRangeAddress

public static boolean crossRangeAddress(CellRangeAddress baseAddress,
                                        CellRangeAddress targetAddress)
範囲内と重なる部分があるかを取得する。

パラメータ:
baseAddress - 基準範囲
targetAddress - 対象範囲
戻り値:
重なる部分がある場合はtrue、それ以外はfalse

containCellRangeAddress

public static boolean containCellRangeAddress(CellRangeAddress baseAddress,
                                              CellRangeAddress targetAddress)
範囲内に完全に含まれるかを取得する。

パラメータ:
baseAddress - 基準範囲
targetAddress - 対象範囲
戻り値:
完全に含まれている場合はtrue、それ以外はfalse

setHyperlink

public static void setHyperlink(Cell cell,
                                int type,
                                String address)
セルにハイパーリンクを設定する。

パラメータ:
cell - セル
type - リンクタイプ
address - ハイパーリンクアドレス
関連項目:
Hyperlink

setCellValue

public static void setCellValue(Cell cell,
                                Object value)
セルに値を設定する。

パラメータ:
cell - セル
value - 値

getLastColNum

public static int getLastColNum(Sheet sheet)
エクセルシート内のデータのあるセルの 最大列のインデックスを取得する。 A列を0とする。対象セルがない場合は-1を返す。

パラメータ:
sheet - シート
戻り値:
データのあるセルの最大列のインデックス