クラス ExcelFileTag
java.lang.Object
jakarta.servlet.jsp.tagext.TagSupport
jakarta.servlet.jsp.tagext.BodyTagSupport
org.opengion.hayabusa.taglib.CommonTagSupport
org.opengion.hayabusa.taglib.ExcelSheetSupport
org.opengion.hayabusa.taglib.ExcelFileTag
- すべての実装されたインタフェース:
BodyTag
,IterationTag
,JspTag
,Tag
,TryCatchFinally
,Serializable
ExcelFileTag は、各種パラメータを指定して、Excelファイルの操作をおこなうタグです。
主に、ExcelModel、POIUtil の各機能をJSP上で使用できるようにしました。
入力の file1 を加工して、file2 を出力するというのが、基本パターンになります。
file1 と、file2 を同じ値に指定した場合は、上書き保存されます。
6.9.0.0 (2018/01/31)
JacobUtil 廃止に伴い、toPrint、saveAs を廃止します。
X ※ (saveAs,toPrint)属性は、JACOB(Java COM Bridge)の使用が前提です。
X これは、JavaからのCOMオートメーションコンポーネント呼び出しを可能とする
X JAVA-COMブリッジです。COMライブラリのネイティブな呼び出しにJNIを使います。
X JACOBは、32bitおよび64bitのJVMをサポートするX86およびx64環境で動作します。
X http://sourceforge.jp/projects/sfnet_jacob-project/ (日本語プロジェクト)
X http://sourceforge.net/projects/jacob-project/ (本家)
X 設定:
X jacob-1.18-M2.zip をダウンロードし、
X ①jacob-1.18-M2-x64.dll または、jacob-1.18-M2-x86.dll を、
X Windowsのシステムディレクトリにコピーします。 (例:C:\Windows\System32)
X ②jacob.jar を、クラスパスに登録します。
X ここでは、名称を、jacob-1.18-M2.jar に変更し、jre\lib\ext にコピーしています。
- 関連項目:
- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成, 8.5.6.1 (2024/03/29) ExcelSheetSupport を継承します。
- 機能分類
- その他部品
- 形式サンプル:
- ●形式:<og:excelFile action="…" fileURL="…" ・・・ /> ●形式:<og:excelFile action="…" fileURL="…" ・・・ > lt;og:excelImageFileParam … /> </og:excelFile> ●body:あり ●Tag定義: <og:excelFile fileURL 【TAG】操作するファイルのディレクトリを指定します (初期値:FILE_URL[=filetemp/]) file1 ○【TAG】入力ファイル名を指定します(必須) file2 【TAG】出力ファイル名を指定します ※ sheetName 【TAG】EXCELファイルを読み込むときのシート名を設定します(初期値:指定なし) ※ sheetNos 【TAG】EXCELファイルを読み込むときのシート番号を複数設定できます(初期値:0) ※ sheetConstKeys 【TAG】EXCELファイルを読み込むときの固定値となるカラム名(CSV形式) ※ sheetConstAdrs 【TAG】EXCELファイルを読み込むときの固定値となるアドレス(行-列,行-列,・・・) useActiveWorkbook 【TAG】EXCEL出力時に、セルの有効範囲を設定するかどうかを指定します(初期値:false) addTitleSheet 【TAG】EXCEL出力時に、存在するSheet名一覧を作成する場合に、そのSheet名を指定します。 addImageFile 【TAG】画像ファイルを挿入します(画像ファイル名 シート番号 行 列) valueType 【TAG】sheetConstXXX,readXXXX のパラメータに登録する方法を指定します(CSV,LIST,MAP) readText 【TAG】ファイルを読み込んで、内容を 引数の変数にセットします。 readSheet 【TAG】ファイルを読み込んで、シート一覧を 引数の変数にセットします。 readName 【TAG】ファイルを読み込んで、名前一覧を 引数の変数にセットします。 readStyle 【TAG】ファイルを読み込んで、スタイル名を 引数の変数にセットします。 useConverter 【TAG】file1 のシート、セル、オブジェクトのテキストを変換します。 convFile 【TAG】useConverter=true 時に、変換対応表をファイルから読み取ります。 convMap 【TAG】useConverter=true 時に、変換対応表をMapから読み取ります。 scope 【TAG】キャッシュする場合のスコープ[request/session/application]を指定します(初期値:request) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 5.7.7.2 (2014/06/20) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 5.7.7.2 (2014/06/20) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) 5.7.7.2 (2014/06/20) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) 5.7.7.2 (2014/06/20) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) /> 【廃止】6.9.0.0 (2018/01/31) 物理削除 X ※ saveAs 【廃止】file1 を指定のファイルの拡張子に合わせた変換を行って保存します(xls,xlsx,pdf)。 X ※ toPrint 【廃止】file1 を指定のプリンタに印刷します。 【追加】7.2.9.0 (2020/10/12) BODY部に excelImageFileParam を指定可能にします。 これは、addImageFile属性のタグ版で複数登録可能です。 ●使用例 ・EXCEL を読み取って、シート名の一覧の目次を、先頭シートに追加します。 <og:excelFile file1="input.xls" file2="input.xls" addTitleSheet="Title" />
- 導入されたバージョン:
- JDK8.0,
-
フィールドの概要
クラスから継承されたフィールド org.opengion.hayabusa.taglib.ExcelSheetSupport
sheetConstAdrs, sheetConstKeys, sheetName, sheetNos
クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport
BR, BUFFER_MIDDLE, CR
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTagSupport
bodyContent
クラスから継承されたフィールド jakarta.servlet.jsp.tagext.TagSupport
id, pageContext
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
インタフェースから継承されたフィールド jakarta.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明protected void
addImgFile
(String imgFile, String sheetName, int sheetNo, int rowNo, int colNo, int rowEndNo, int colEndNo, int dx1, int dy1, int dx2, int dy2) addImageFile属性の実際の処理を行います。int
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。int
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。protected void
release2()
タグリブオブジェクトをリリースします。void
setAddImageFile
(String imgFile) 【TAG】指定のシートの行・列の箇所に、イメージファイルを挿入します。void
setAddTitleSheet
(String sheetName) 【TAG】EXCEL出力時に、Sheet一覧を作成する場合のSheet名を指定します。void
setConvFile
(String cfile) 【TAG】useConverter=true 時に、変換対応表をファイルから読み取ります。void
setConvMap
(String cmap) 【TAG】useConverter=true 時に、変換対応表をMapから読み取ります。void
【TAG】基準となるファイル名を指定します(コマンドの左辺のファイル名です)。void
【TAG】内部 Workbook オブジェクトをファイルに書き出します。void
setFileURL
(String url) 【TAG】操作するファイルのディレクトリを指定します (初期値:FILE_URL[=])。void
setReadName
(String read) 【TAG】ファイルを読み込んで、名前一覧を 引数の変数にセットします。void
setReadSheet
(String read) 【TAG】ファイルを読み込んで、シート一覧を引数の変数にセットします。void
setReadStyle
(String read) 【TAG】ファイルを読み込んで、スタイル名を 引数の変数にセットします。void
setReadText
(String read) 【TAG】ファイルを読み込んで、内容を引数の変数にセットします。void
【TAG】キャッシュする場合のスコープ[request/session/application]を指定します(初期値:request)。void
setUseActiveWorkbook
(String useActWB) 【TAG】EXCEL出力時に、セルの有効範囲を設定するかどうかを指定します(初期値:false)。void
setUseConverter
(String useConv) 【TAG】シート名、セル、オブジェクトのテキストを変換するかどうか指定します(初期値:false)。void
setValueType
(String type) 【TAG】sheetConstXXX,readXXXX のパラメータに登録する方法を指定します(CSV/LIST/MAP)。toString()
このオブジェクトの文字列表現を返します。クラスから継承されたメソッド org.opengion.hayabusa.taglib.ExcelSheetSupport
setSheetConstAdrs, setSheetConstKeys, setSheetName, setSheetNos
クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLongLabel, getMsg, getMsglbl, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useStrict, useTag, useXssCheck
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, release, setBodyContent
クラスから継承されたメソッド jakarta.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue
クラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェースから継承されたメソッド jakarta.servlet.jsp.tagext.Tag
getParent, setPageContext, setParent
-
コンストラクタの詳細
-
ExcelFileTag
public ExcelFileTag()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
doStartTag
Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。- 定義:
doStartTag
インタフェース内Tag
- オーバーライド:
doStartTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 7.2.9.0 (2020/10/12) ExcelImageFileParamTag から値を取り込みます。
-
doEndTag
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。- 定義:
doEndTag
インタフェース内Tag
- オーバーライド:
doEndTag
クラス内CommonTagSupport
- 戻り値:
- 後続処理の指示
- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成, 6.3.1.0 (2015/06/28) readText の取得方法を変更する。, 6.9.0.0 (2018/01/31) JacobUtil 廃止に伴い、toPrint、saveAs を廃止します。, 7.2.9.0 (2020/10/12) ExcelImageFileParamTag から値を取り込みます。
-
release2
タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。- オーバーライド:
release2
クラス内ExcelSheetSupport
- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成, 6.9.0.0 (2018/01/31) JacobUtil 廃止に伴い、toPrint、saveAs を廃止します。
-
setFileURL
【TAG】操作するファイルのディレクトリを指定します (初期値:FILE_URL[=])。- パラメータ:
url
- ファイルURL- 関連項目:
- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成, 6.4.2.1 (2016/02/05) URLの最後に、"/" を追加する処理を廃止。
- 説明:
- この属性で指定されるディレクトリのファイルを操作します。 指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、2文字目が、 ":" (Windows)の場合は、指定のURLそのままのディレクトリに、そうでない場合は、 (初期値:システム定数のFILE_URL[=])。
-
setFile1
【TAG】基準となるファイル名を指定します(コマンドの左辺のファイル名です)。- パラメータ:
fname
- ファイル名1- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- コマンドの左辺のファイル名です。
-
setFile2
【TAG】内部 Workbook オブジェクトをファイルに書き出します。- パラメータ:
fname
- ファイル名2- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- この属性を指定しない場合は、ファイルに出力されません。 また、file1 と同じファイルを指定することは可能です。その場合は、 元のファイルが上書き保存されます。 Excelの形式は、ここで指定する出力ファイルの拡張子ではなく、file1で 指定したファイルの拡張子で決まります。 異なる形式の拡張子を持つファイルを指定した場合、強制的に、オープンした Workbook の形式の拡張子を追加します。 拡張子は、Excel 2007以降の形式(.xlsx)か、Excel 2003以前の形式(.xls) が指定できます。 拡張子が未設定の場合は、オープンした Workbook の形式に合わせた拡張子を付与します。
-
setUseActiveWorkbook
【TAG】EXCEL出力時に、セルの有効範囲を設定するかどうかを指定します(初期値:false)。- パラメータ:
useActWB
- 有効範囲の設定 [true:する/false:しない]- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- セルの有効範囲というのは、EXCELでの 空行、空列の存在しない範囲を指します(初期値:false)。 通常、空行でも、データとして残っている場合は、EXCELのセルオブジェクトは存在します。 ここで、useActiveWorkbook="true" とすると、空行、空列を削除します。 初期値は、false:しない です。
-
setAddTitleSheet
【TAG】EXCEL出力時に、Sheet一覧を作成する場合のSheet名を指定します。- パラメータ:
sheetName
- タイトルシート名- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- これは、Workbook に含まれる Sheet 一覧を作成する場合に、ここに指定した シート名で、目次を作成します。
-
setAddImageFile
【TAG】指定のシートの行・列の箇所に、イメージファイルを挿入します。- パラメータ:
imgFile
- (画像ファイル名 シート番号 開始行 開始列 [終了行 終了列 開始セルのX軸マージン 開始セルのY軸マージン 終了セルのX軸マージン 終了セルのY軸マージン])- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- 7.2.9.0 (2020/10/12) 以降は、ExcelImageFileParamTag を推奨いたします。 ここでは、セル範囲ではなく、指定の行列の箇所に、アンカーを設定して、画像ファイルを 挿入します。一応、リサイズして、元の大きさ近くに戻しますが、縦横比が変わってしまいます。 正確に挿入する場合は、セル範囲の指定と、マージンを指定しなければなりませんが、 微調整が必要です。 引数は、スペース区切りで、下記の順番で指定します。 imgFile 挿入するイメージファイル名 shtNo シート番号 row1 挿入する行(開始) col1 挿入する列(開始) [row2] 挿入する行(終了-含まず) (未指定時は、row1) [col2] 挿入する列(終了-含まず) (未指定時は、col1) [dx1 ] 開始セルのX軸座標のオフセット(ピクセル) (未指定時は、0) [dy1 ] 開始セルのY軸座標のオフセット(ピクセル) (未指定時は、0) [dx2 ] 終了セルのX軸座標のオフセット(ピクセル) (未指定時は、0) [dy2 ] 終了セルのY軸座標のオフセット(ピクセル) (未指定時は、0)
-
addImgFile
protected void addImgFile(String imgFile, String sheetName, int sheetNo, int rowNo, int colNo, int rowEndNo, int colEndNo, int dx1, int dy1, int dx2, int dy2) addImageFile属性の実際の処理を行います。- パラメータ:
imgFile
- 挿入するイメージファイル名sheetName
- シート名sheetNo
- シート番号rowNo
- 挿入する行(開始)colNo
- 挿入する列(開始)rowEndNo
- 挿入する行(終了-含まず)colEndNo
- 挿入する列(終了-含まず)dx1
- 開始セルのX軸座標のオフセット(ピクセル)dy1
- 開始セルのY軸座標のオフセット(ピクセル)dx2
- 終了セルのX軸座標のオフセット(ピクセル)dy2
- 終了セルのY軸座標のオフセット(ピクセル)- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
-
setValueType
【TAG】sheetConstXXX,readXXXX のパラメータに登録する方法を指定します(CSV/LIST/MAP)。- パラメータ:
type
- 保管方法(CSV/LIST/MAP)- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- キーに対して、値は複数存在する場合があります。 その値を、設定する場合の、3つの方法を指定できます。 CSV : キーに対して、値をCSV形式でセットします。valueタグや、{@XXX} で、取り出せます。 キーが複数ある場合は、個別に指定する必要があります。 LIST: キーに対して、値をListオブジェクトにセーブします。 キーが複数ある場合は、個別に指定する必要があります。 MAP : キー自体を、Mapオブジェクトに設定します。値は、CSV形式の文字列です。 初期値は、CSV です。
-
setReadText
【TAG】ファイルを読み込んで、内容を引数の変数にセットします。- パラメータ:
read
- 書き込む変数名- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- EXCELのセルと、テキストボックスオブジェクトの値を取得します。 引数に、キーとなるパラメータを指定します。 テキストは、一つのキーに設定されます。 valueType 属性の指定とは無関係にパラメータに登録されます。
-
setReadSheet
【TAG】ファイルを読み込んで、シート一覧を引数の変数にセットします。- パラメータ:
read
- 書き込む変数名- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- EXCELのシート一覧を取得します。 引数に、キーとなるパラメータを指定します。 値の設定方法は、valueType 属性で指定します。
-
setReadName
【TAG】ファイルを読み込んで、名前一覧を 引数の変数にセットします。- パラメータ:
read
- 書き込む変数名- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- EXCELの名前一覧を取得します。 名前一覧に、不正な値や、他のファイルのリンク等が設定されていると、 EXCELを開くのに時間がかかる場合があります。EXCEL帳票などでは、問題になります。 そこで、この名前が不正かどうか判別するのに、名前一覧を使用します。 引数に、キーとなるパラメータを指定します。 値の設定方法は、valueType 属性で指定します。
-
setReadStyle
【TAG】ファイルを読み込んで、スタイル名を 引数の変数にセットします。- パラメータ:
read
- 書き込む変数名- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- EXCELのスタイル名を取得します。 スタイル名に、不正な値が設定されていると、EXCELを開くのに 時間がかかる場合があります。EXCEL帳票などでは、問題になります。 そこで、このスタイル名が不正かどうか判別するのに、使用します。 引数に、キーとなるパラメータを指定します。 値の設定方法は、valueType 属性で指定します。
-
setUseConverter
【TAG】シート名、セル、オブジェクトのテキストを変換するかどうか指定します(初期値:false)。- パラメータ:
useConv
- コンバータ処理を行うかどうか [true:行う/false:行わない]- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- この属性では、テキスト変換を行うかどうかを指定します。例え、convFile属性や convMap属性が指定されていても、この属性を true にしないと、変換は行われません。 また、convFile属性と、convMap属性がどちらも指定されていない場合も、実行されません。 初期値は、false:行わない です。
-
setConvFile
【TAG】useConverter=true 時に、変換対応表をファイルから読み取ります。- パラメータ:
cfile
- コンバータ処理の変換対応表ファイル- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- この属性は、useConverter=true を指定しないと、無視されます。 テキスト変換を行う変換対応表を、ファイルで指定します。 このテキストファイルは、変換元と変換先の文字列をタブ区切りで定義された、UTF-8ファイルです。
-
setConvMap
【TAG】useConverter=true 時に、変換対応表をMapから読み取ります。- パラメータ:
cmap
- コンバータ処理の変換対応表Mapの取得キー- 変更履歴:
- 6.2.6.0 (2015/06/19) 新規作成
- 説明:
- この属性は、useConverter=true を指定しないと、無視されます。 テキスト変換を行う変換対応表を、Mapオブジェクトで指定します。 メモリ上のMapオブジェクトの取得キーを、指定します。 スコープは、scope 属性を使います。
-
setScope
【TAG】キャッシュする場合のスコープ[request/session/application]を指定します(初期値:request)。- オーバーライド:
setScope
クラス内CommonTagSupport
- パラメータ:
scp
- スコープ- 関連項目:
- 説明:
- "request","session","application" が指定できます。 初期値は、"request" です。
-
toString
このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。- オーバーライド:
toString
クラス内CommonTagSupport
- 戻り値:
- このクラスの文字列表現
- このメソッドは、nullを返しません
-