001 /* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016 package org.opengion.hayabusa.io; 017 018 import java.io.BufferedReader; 019 import java.util.Map; 020 021 import org.opengion.fukurou.util.CSVTokenizer; 022 import org.opengion.fukurou.util.StringUtil; 023 import org.opengion.hayabusa.common.HybsSystem; 024 import org.opengion.hayabusa.db.DBColumn; 025 import org.opengion.hayabusa.db.DBTableModel; 026 import org.opengion.hayabusa.resource.ResourceManager; 027 import org.opengion.hayabusa.resource.CodeData; 028 029 /** 030 * æŒ?®šã?区åˆ?‚Šè¨˜å·(åˆæœŸå€¤:タブ区åˆ?‚Š)ファイルã®èªã¿å–りクラスã§ã™ã? 031 * 032 * åå‰?Œãƒ‡ãƒ¼ã‚¿ã®å…¥åŠ›éƒ¨ã®ã¿ã‚ªãƒ¼ãƒã?ライドã™ã‚Œã??Œå„種入力フォーマットã«åˆã‚ã›ãŸ 033 * サブクラスを実ç¾ã™ã‚‹äº‹ãŒå¯èƒ½ã§ã™ã? 034 * 035 * @og.group ファイル入åŠ? 036 * 037 * @version 4.0 038 * @author Kazuhiko Hasegawa 039 * @since JDK5.0, 040 */ 041 public abstract class AbstractTableReader implements TableReader { 042 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 043 private static final String VERSION = "5.5.8.5 (2012/11/27)" ; 044 045 private String separator = TAB_SEPARATOR; // é ?›®åŒºåˆ?‚Šæ–?? 046 private ResourceManager resource = null; // 4.0.0 (2005/01/31) 047 private int maxRowCount = HybsSystem.sysInt( "DB_MAX_ROW_COUNT" ) ; 048 049 protected DBTableModel table = null; 050 protected DBColumn[] dbColumn = null; 051 052 // 3.5.4.5 (2004/01/23) カラãƒ?ã®å¤–部æŒ?®šã‚’出æ¥ã‚‹æ§˜ã«ã™ã‚‹ã€? 053 // private String columns = null; // 外部æŒ?®šã?カラãƒ? 054 protected String columns = null; // 外部æŒ?®šã?カラãƒ? ( 4.3.4.7 (2009/01/22) protectedã«å¤‰æ›´ ) 055 private String encode = null; 056 private boolean useNumber = true; // 3.7.0.5 (2005/04/11) 057 058 private int skipRowCount = 0; // 5.1.6.0 (2010/05/01) ãƒ??ã‚¿ã®èªã¿é£›ã?ã—è¨å®? 059 private boolean useRenderer = false; // 5.2.1.0 (2010/10/01) 060 061 // 5.2.1.0 (2010/10/01) コードリソース毎ã?ラベルé€?¼•ãマッãƒ? 062 private Map<?,?>[] maps = null; // 5.5.1.7 (2012/04/16) ワイルドカードをæŒ?®? 063 064 private boolean useDebug = false; // 5.5.7.2 (2012/10/09) ãƒ?ƒãƒ?‚°æƒ??ã®å‡ºåŠ›ã™ã‚‹ã‹ã©ã?‹ 065 066 /** 067 * DBTableModel ã‹ã‚‰ å?½¢å¼ã?ãƒ??タを作æ?ã—ã¦,BufferedReader よりèªã¿å–りã¾ã™ã? 068 * コメンãƒ?空行を除ãã?æœ??ã®è¡Œã?ã€å¿?šé ?›®åãŒå¿?¦ã§ã™ã? 069 * ãれ以é™ã?ã€ã‚³ãƒ¡ãƒ³ãƒ?空行を除ãã?ãƒ??ã‚¿ã¨ã—ã¦èªã¿è¾¼ã‚“ã§ã?ã¾ã™ã? 070 * ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL èªã¿è¾¼ã¿æ™‚ã«ä½¿ç”¨ã—ã¾ã™ã? 071 * 072 * @see #isExcel() 073 */ 074 abstract public void readDBTable(); 075 076 /** 077 * DBTableModel ã‹ã‚‰ å?½¢å¼ã?ãƒ??タを作æ?ã—ã¦,BufferedReader よりèªã¿å–りã¾ã™ã? 078 * コメンãƒ?空行を除ãã?æœ??ã®è¡Œã?ã€å¿?šé ?›®åãŒå¿?¦ã§ã™ã? 079 * ãれ以é™ã?ã€ã‚³ãƒ¡ãƒ³ãƒ?空行を除ãã?ãƒ??ã‚¿ã¨ã—ã¦èªã¿è¾¼ã‚“ã§ã?ã¾ã™ã? 080 * 081 * @param reader BufferedReaderオブジェクãƒ? 082 */ 083 abstract public void readDBTable( final BufferedReader reader ); 084 085 /** 086 * リソースマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? 087 * ã“れã¯ã€è¨?ª?ãƒã‚±ãƒ¼ãƒ«)ã«å¿œã˜ã?DBColumn ã‚’ã‚らã‹ã˜ã‚è¨å®šã—ã¦ãŠã為㫠088 * å¿?¦ã§ã™ã? 089 * リソースマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ãŒè¨å®šã•れã¦ã?ªã??ã¾ãŸã?ã€æ‰€å®šã?ã‚ー㮠DBColumn ã? 090 * リソースã«å˜åœ¨ã—ãªã??åˆã?ã€å?部㧠DBColumn オブジェクトを作æ?ã—ã¾ã™ã? 091 * 092 * @og.rev 4.0.0.0 (2005/01/31) lang â‡?ResourceManager ã¸å¤‰æ›´ 093 * 094 * @param resource リソースマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ 095 */ 096 public void setResourceManager( final ResourceManager resource ) { 097 this.resource = resource; 098 } 099 100 /** 101 * DBColumn オブジェクトをDBTable ã«è¨å®šã—ã¾ã™ã? 102 * 103 * @og.rev 3.5.4.2 (2003/12/15) private ã‚?protected ã«å¤‰æ›´ã€? 104 * @og.rev 3.5.4.5 (2004/01/23) DBColumn é…å?ã«å€¤ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? 105 * @og.rev 5.2.1.0 (2010/10/01) useRenderer対å¿?コードリソース毎ã?ラベルé€?¼•ã) 106 * 107 * @param names カラãƒ?é…å? 108 */ 109 protected void setTableDBColumn( final String[] names ) { 110 dbColumn = new DBColumn[names.length] ; // 3.5.4.5 追åŠ? 111 for( int i=0; i<names.length; i++ ) { 112 DBColumn clm = resource.makeDBColumn( names[i] ); 113 table.setDBColumn( i,clm ); 114 dbColumn[i] = clm; // 3.5.4.5 追åŠ? 115 } 116 117 if( useRenderer ) { 118 maps = new Map<?,?>[names.length]; // 5.5.1.7 (2012/04/16) ワイルドカードをæŒ?®? 119 for( int i=0; i<names.length; i++ ) { 120 CodeData cd = dbColumn[i].getCodeData(); 121 if( cd != null ) { maps[i] = cd.makeLabelMap(); } 122 else { maps[i] = null; } 123 } 124 } 125 } 126 127 /** 128 * DBTableModelオブジェクトã«ã€?¼‘行å?ã®ãƒ??タを追åŠ?—ã¾ã™ã? 129 * ã“れ自体ã?ã€ãƒ¡ã‚½ãƒ?ƒ‰ã®å…±é€šåŒ–ã«ã‚ˆã‚‹ 拡張をã—ã‚?™ãã™ã‚‹ãŸã‚ã«ç”¨æ„ã—ã¾ã—ãŸã€? 130 * 131 * @og.rev 5.2.1.0 (2010/10/01) æ–°è¦ä½œæ? 132 * 133 * @param values ?‘行å?ã®ãƒ??ã‚¿é…å? 134 */ 135 protected void setTableColumnValues( final String[] values ) { 136 if( useRenderer ) { 137 int clmSize = values.length; 138 for( int clmNo=0; clmNo<clmSize; clmNo++ ) { 139 if( maps[clmNo] != null ) { 140 String val = values[clmNo]; 141 if( val == null ) { val = ""; } 142 else { 143 String tmp = (String)maps[clmNo].get( val ); 144 if( tmp != null ) { values[clmNo] = tmp; } 145 else { 146 int sp = val.indexOf( ':' ); 147 if( sp >= 0 ) { 148 values[clmNo] = val.substring( 0,sp ); 149 } 150 } 151 } 152 } 153 } 154 } 155 156 table.addColumnValues( values ); 157 } 158 159 /** 160 * ?‘行ã?ãƒ??ã‚¿ã‚?ãƒ??ブルモãƒ?ƒ«ã«ã‚»ãƒ?ƒˆã™ã‚‹ã‚ˆã†ã«åˆ?‰²ã—ã¾ã™ã? 161 * 162 * ãªãŠã?èªè¾¼ã¿ã¯?ŒNAMEé ?›®åˆ?‚’èªã¿è¾¼ã¿ã¾ã™ã?ãƒ??ã‚¿ä»¶æ•°ãŒå°‘ãªã??åˆã?ã€? 163 * "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãŠãã¾ã™ã? 164 * ãƒ??ã‚¿ã®åˆ?‰²ã¯ã€separatoræ–?—を使用ã—ã¾ã™ã? 165 * 166 * @og.rev 3.3.3.1 (2003/07/18) ファイルリーãƒ?ライト時ã«å¾Œã‚スペã?スã®é™¤åŽ»ã‚’è¡Œã„ã¾ã™ã? 167 * @og.rev 3.7.0.5 (2005/04/11) useNumber 属æ?ã‚’è?æ…®ã—ã¾ã™ã? 168 * 169 * @param data ?‘行ã?ãƒ??ã‚¿ 170 * @param clmSize カラãƒ?•° 171 * 172 * @return åˆ?‰²ã•ã‚ŒãŸæ–‡å—å?é…å? 173 */ 174 protected String[] readData( final String data,final int clmSize ) { 175 String[] rtnData = new String[ clmSize ]; 176 CSVTokenizer token = new CSVTokenizer( data,separator.charAt(0) ); 177 // è¶?‚¤ãƒ¬ã‚®ãƒ¥ãƒ©ãƒ¼å‡¦ç?æœ??ã® separator 以å‰ã?æ–?—ã?無視ã™ã‚‹ã? 178 // 3.7.0.5 (2005/04/11) 179 if( useNumber ) { token.nextToken(); } // å…ˆé?ã¯è¡Œç•ªå·ã®ãŸã‚無視ã™ã‚‹ã? 180 181 int clmNo = 0; 182 while( token.hasMoreTokens() ) { 183 String val = StringUtil.csvOutQuote( token.nextToken() ); 184 if( val != null && val.startsWith( "'0" ) ) { 185 rtnData[clmNo++] = StringUtil.rTrim( val.substring( 1 ) ); 186 } 187 else { 188 rtnData[clmNo++] = StringUtil.rTrim( val ); 189 } 190 if( clmNo >= clmSize ) { break; } // 3.7.0.5 (2005/04/11) 多ã„å ´åˆã?ã€ä»¥é™ã‚’無視ã™ã‚‹ã? 191 } 192 // EXCEL ãŒã?終端TABを削除ã—ã¦ã—ã¾ã?Ÿã‚ã?å°‘ãªã??åˆã?埋ã‚ã‚‹ã? 193 for( int i=clmNo; i<clmSize; i++ ) { 194 rtnData[i] = ""; 195 } 196 197 return rtnData; 198 } 199 200 /** 201 * å†?ƒ¨ã® DBTableModel ã‚’è¿”ã—ã¾ã™ã? 202 * 203 * @return ãƒ??ブルモãƒ?ƒ« 204 */ 205 public DBTableModel getDBTableModel() { 206 return table; 207 } 208 209 /** 210 * ãƒ??ã‚¿ã‚’èªã¿è¾¼ã‚??åˆã?,区åˆ?‚Šæ–?—ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? 211 * 212 * ãªãŠï¼Œã“ã®ãƒ¡ã‚½ãƒ?ƒ‰ã¯,サブクラスã«ã‚ˆã£ã¦ã¯,使用ã—ãªã??åˆãŒã‚りã¾ã™ã? 213 * ã‚‚ã—?Œä½¿ç”¨ã—ãªã?‚µãƒ–クラスを作æ?ã™ã‚‹å ´åˆã?, UnsupportedOperationException 214 * ã‚?throw ã™ã‚‹ã‚ˆã†ã«,サブクラスã§å®Ÿè£?—ã¦ä¸‹ã•ã?? 215 * 216 * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€? 217 * 218 * @param sep 区åˆ?‚Šæ–?? 219 */ 220 public void setSeparator( final String sep ) { 221 if( sep != null ) { this.separator = sep; } 222 } 223 224 /** 225 * ãƒ??タを書ãè¾¼ã‚??åˆã?,区åˆ?‚Šæ–?—ã‚’è¿”ã—ã¾ã™ã? 226 * 227 * @return 区åˆ?‚Šæ–?? 228 */ 229 public String getSeparator() { 230 return separator; 231 } 232 233 /** 234 * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦ç™»éŒ²ã™ã‚‹æœ?¤§ä»¶æ•°ã‚’ã“ã®å€¤ã«è¨å®šã—ã¾ã? 235 * (åˆæœŸå€¤:DB_MAX_ROW_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT}])ã€? 236 * サーãƒã?ã®ãƒ¡ãƒ¢ãƒªè³?ºã¨å¿œç”時間ã?確ä¿ã?為ã§ã™ã? 237 * 238 * @return æœ?¤§æ¤œç´¢ä»¶æ•° 239 */ 240 public int getMaxRowCount() { 241 return maxRowCount; 242 } 243 244 /** 245 * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦ç™»éŒ²ã™ã‚‹æœ?¤§ä»¶æ•°ã‚’ã“ã®å€¤ã«è¨å®šã—ã¾ã? 246 * (åˆæœŸå€¤:DB_MAX_ROW_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT}])ã€? 247 * サーãƒã?ã®ãƒ¡ãƒ¢ãƒªè³?ºã¨å¿œç”時間ã?確ä¿ã?為ã§ã™ã? 248 * 249 * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€? 250 * @og.rev 5.5.8.5 (2012/11/27) 0を無制é™ã¨ã—ã¦å‡¦ç?—ã¾ã™ã? 251 * 252 * @param maxRowCount æœ?¤§æ¤œç´¢ä»¶æ•° 253 */ 254 public void setMaxRowCount( final int maxRowCount ) { 255 // this.maxRowCount = maxRowCount; 256 this.maxRowCount = ( maxRowCount > 0 ) ? maxRowCount : Integer.MAX_VALUE ; 257 } 258 259 /** 260 * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シートåã‚’è¨å®šã—ã¾ã™ã? 261 * ã“れã«ã‚ˆã‚Šã€è¤?•°ã®å½¢å¼ã?ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ã‚’é?次èªã¿è¾¼ã‚?“ã¨ã‚??シートをæŒ?®šã—㦠262 * èªã¿å–ã‚‹ã“ã¨ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã? 263 * sheetNos 㨠sheetName ãŒåŒæ™‚ã«æŒ?®šã•れãŸå ´åˆã?ã€sheetNos ãŒå„ªå…ˆã•れã¾ã™ã?エラーã«ã¯ãªã‚‰ãªã??ã§ã”注æ„ãã?•ã?? 264 * ã®ã§ã”注æ„ãã?•ã?? 265 * ã“ã?メソãƒ?ƒ‰ã¯ã€isExcel() == true ã®å ´åˆã?ã¿åˆ©ç”¨ã•れã¾ã™ã? 266 * 267 * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€? 268 * 269 * @og.rev 3.5.4.2 (2003/12/15) æ–°è¦è¿½åŠ? 270 * 271 * @param sheetName シートå 272 */ 273 public void setSheetName( final String sheetName ) { 274 String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?; 275 throw new UnsupportedOperationException( errMsg ); 276 } 277 278 /** 279 * EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シート番å·ã‚’指定ã—ã¾ã?åˆæœŸå€¤:0)ã€? 280 * 281 * EXCELèªã¿è¾¼ã¿æ™‚ã«è¤?•°ã‚·ãƒ¼ãƒˆã‚’マã?ジã—ã¦å–り込ã¿ã¾ã™ã? 282 * シート番å·ã¯ã€? ã‹ã‚‰å§‹ã¾ã‚‹æ•°å—ã§è¡¨ã—ã¾ã™ã? 283 * ヘッãƒ??ã¯ã€æœ€åˆã?シートã?カラãƒ?½ç½®ã«åˆã‚ã›ã¾ã™ã??ˆã?ãƒ?ƒ€ãƒ¼ã‚¿ã‚¤ãƒˆãƒ«ã®è‡ªå‹•èªè˜ã?ã‚りã¾ã›ã‚“。ï¼? 284 * よã£ã¦ã€æŒ‡å®šã™ã‚‹ã‚·ãƒ¼ãƒˆã?ã€ã™ã¹ã¦åŒä¸?ƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã§ãªã?¨å–ã‚Šè¾¼ã¿æ™‚ã«ã‚«ãƒ©ãƒ??ãšã‚ŒãŒç™ºç”Ÿã—ã¾ã™ã? 285 * 286 * シート番å·ã®æŒ?®šã?ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã§ã€è¤?•°æŒ?®šã§ãã¾ã™ã?ã¾ãŸã?N-M ã®æ§˜ã«ãƒã‚¤ãƒ•ンã§ç¹‹ã’ã‚‹ã“ã¨ã§ã€? 287 * N 番ã‹ã‚‰ã€M 番ã®ã‚·ãƒ¼ãƒˆç¯?›²ã‚’ä¸?‹¬æŒ?®šå¯èƒ½ã§ã™ã?ã¾ãŸã?"*" ã«ã‚ˆã‚‹ã€å?シート指定ãŒå¯èƒ½ã§ã™ã? 288 * ã“れらã?çµ?¿åˆã‚ã›ã‚‚å¯èƒ½ã§ã™ã???0,1,3,5-8,10-* ?? 289 * ãŸã ã—ã?"*" ã«é–¢ã—ã¦ã¯ä¾‹å¤–çš„ã«ã€ä¸?–‡å—ã ã‘ã§ã€ã™ã¹ã¦ã®ã‚·ãƒ¼ãƒˆã‚’表ã™ã‹ã€N-* ã‚’æœ€å¾Œã«æŒ?®šã™ã‚‹ã‹ã® 290 * ã©ã¡ã‚‰ã‹ã§ã™ã?途ä¸ã«ã¯ã€?*" ã¯ã€ç¾ã‚Œã¾ã›ã‚“ã€? 291 * シート番å·ã¯ã€?‡è¤?1,1,2,2)ã€??転(3,2,1) ã§ã®æŒ?®šãŒå¯èƒ½ã§ã™ã?ã“れã¯ã€ãã®æŒ?®šé?ã§ã€èªã¿è¾¼ã¾ã‚Œã¾ã™ã? 292 * sheetNos 㨠sheetName ãŒåŒæ™‚ã«æŒ?®šã•れãŸå ´åˆã?ã€sheetNos ãŒå„ªå…ˆã•れã¾ã™ã?エラーã«ã¯ãªã‚‰ãªã??ã§ã”注æ„ãã?•ã?? 293 * ã“ã?メソãƒ?ƒ‰ã¯ã€isExcel() == true ã®å ´åˆã?ã¿åˆ©ç”¨ã•れã¾ã™ã? 294 * 295 * åˆæœŸå€¤ã¯ã€??ˆç¬¬ä¸?‚·ãƒ¼ãƒˆï¼?ã§ã™ã? 296 * 297 * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€? 298 * 299 * @og.rev 5.5.7.2 (2012/10/09) æ–°è¦è¿½åŠ? 300 * 301 * @param sheetNos EXCELファイルã®ã‚·ãƒ¼ãƒˆç•ªå·??ã‹ã‚‰å§‹ã¾ã‚‹ï¼? 302 * @see #setSheetName( String ) 303 */ 304 public void setSheetNos( final String sheetNos ) { 305 String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?; 306 throw new UnsupportedOperationException( errMsg ); 307 } 308 309 /** 310 * EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シートå˜ä½ã?固定å?ã‚’è¨å®šã™ã‚‹ãŸã‚ã?カラãƒ?ã¨ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’指定ã—ã¾ã™ã? 311 * カラãƒ?ã¯ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã§æŒ?®šã—ã¾ã™ã? 312 * 対応ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ã?EXCEL上ã?è¡?列を?ã‹ã‚‰å§‹ã¾ã‚‹æ•´æ•°ã§ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã§æŒ?®šã—ã¾ã™ã? 313 * ã“れã«ã‚ˆã‚Šã€ã‚·ãƒ¼ãƒˆã?ä¸?‹æ‰?«æ›¸ã‹ã‚Œã¦ã?‚‹æƒ??ã‚’ã?DBTableModel ã®ã‚«ãƒ©ãƒ?«å›ºå®šå?ã¨ã—㦠314 * è¨å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã? 315 * 例ã¨ã—ã¦ã€DB定義書ã§ã€ãƒ†ãƒ¼ãƒ–ルåをシートã?全レコードã«è¨å®šã—ãŸã„å ´åˆãªã©ã«ä½¿ã?¾ã™ã? 316 * ã“ã?メソãƒ?ƒ‰ã¯ã€isExcel() == true ã®å ´åˆã?ã¿åˆ©ç”¨ã•れã¾ã™ã? 317 * 318 * @og.rev 5.5.8.2 (2012/11/09) æ–°è¦è¿½åŠ? 319 * 320 * @param constKeys 固定å?ã¨ãªã‚‹ã‚«ãƒ©ãƒ?(CSVå½¢å¼? 321 * @param constAdrs 固定å?ã¨ãªã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹(è¡?åˆ?è¡?åˆ?・・・) 322 */ 323 public void setSheetConstData( final String constKeys,final String constAdrs ) { 324 String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?; 325 throw new UnsupportedOperationException( errMsg ); 326 } 327 328 /** 329 * ã“ã“ã«æŒ?®šã•れãŸã‚«ãƒ©ãƒ??ã« NULL ãŒç¾ã‚ŒãŸæ™‚点ã§èªã¿å–ã‚Šã‚’ä¸æ¢ã—ã¾ã™ã? 330 * 331 * ã“れã¯ã€æŒ‡å®šã?カラãƒ??å¿??ã¨ã?†äº‹ã‚’æ¡ä»¶ã«ã€ãã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã ã‘ã‚’èªã¿å–る処ç?‚’行ã„ã¾ã™ã? 332 * è¤?•°Sheetã®å ´åˆã?ã€æ¬¡ã®Sheetã‚’èªã¿ã¾ã™ã? 333 * ç¾æ™‚点ã§ã¯ã€Excel ã®å ´åˆã?ã¿æœ‰åйã§ã™ã? 334 * 335 * @og.rev 5.5.8.2 (2012/11/09) æ–°è¦è¿½åŠ? 336 * 337 * @param clm カラãƒ?? 338 */ 339 public void setNullBreakClm( final String clm ) { 340 String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?; 341 throw new UnsupportedOperationException( errMsg ); 342 } 343 344 /** 345 * ã“ã?クラスãŒã?EXCEL対応機è?ã‚’æŒã£ã¦ã?‚‹ã‹ã©ã?‹ã‚’è¿”ã—ã¾ã™ã? 346 * 347 * EXCEL対応機è?ã¨ã¯ã€ã‚·ãƒ¼ãƒˆåã®ã‚»ãƒ?ƒˆã€èªã¿è¾¼ã¿å…?ƒ•ァイル㮠348 * Fileオブジェクトå–å¾—ãªã©ã®ã€ç‰¹æ®Šæ©Ÿè?ã§ã™ã? 349 * 本æ¥ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースをå?ã‘ã‚‹ã¹ãã¨è€?ˆã¾ã™ãŒã€taglib クラスç‰ã? 350 * 関係ãŒã‚りã€å•ã?ˆã‚ã›ã«ã‚ˆã‚‹æ¡ä»¶åˆ?²ã§å¯¾å¿œã—ã¾ã™ã? 351 * 352 * @og.rev 3.5.4.3 (2004/01/05) æ–°è¦è¿½åŠ? 353 * 354 * @return EXCEL対応機è?ã‚’æŒã£ã¦ã?‚‹ã‹ã©ã?‹ 355 */ 356 public boolean isExcel() { 357 return false; 358 } 359 360 /** 361 * èªã¿å–りå…?ƒ•ァイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?(DIR + Filename) 362 * ã“れã¯ã€EXCEL追åŠ?©Ÿè?ã¨ã—ã¦å®Ÿè£?•れã¦ã?¾ã™ã? 363 * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€? 364 * 365 * @og.rev 3.5.4.3 (2004/01/05) æ–°è¦ä½œæ? 366 * 367 * @param filename èªã¿å–りå…?ƒ•ァイルå? 368 */ 369 public void setFilename( final String filename ) { 370 String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?; 371 throw new UnsupportedOperationException( errMsg ); 372 } 373 374 /** 375 * èªã¿å–りå…?ƒ•ァイルã®ã‚«ãƒ©ãƒ??ã‚’ã?外部(ã‚¿ã‚°)よりæŒ?®šã—ã¾ã™ã? 376 * ファイルã«è¨˜è¿°ã•れã?#NAME より優先ã—ã¦ä½¿ç”¨ã•れã¾ã™ã? 377 * 378 * @og.rev 3.5.4.5 (2004/01/23) æ–°è¦ä½œæ? 379 * 380 * @param clms èªã¿å–りå…?ƒ•ァイルã®ã‚«ãƒ©ãƒ??(カンマ区åˆ?‚Šæ–?? 381 */ 382 public void setColumns( final String clms ) { 383 columns = clms ; 384 } 385 386 /** 387 * èªã¿å–りå…?ƒ•ァイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–‡å—å?を指定ã—ã¾ã™ã? 388 * ファイルã¯ã€BufferedReader ã§å—ã‘å–ã‚‹ç‚ºã€æœ¬æ¥ã¯ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã?ä¸è¦ã§ã™ãŒã€? 389 * 固定長ファイルã®èªã¿å–り時ã?ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰å?割時ã«ã€æŒ‡å®šã?エンコード㧠390 * åˆ?‰²ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?(例ãˆã°ã€åŠè§’æ–‡å—ã?ã€Shift_JIS ã§ã¯ã€?¼‘ãƒã‚¤ãƒ? 391 * 392 * @og.rev 3.5.4.5 (2004/01/23) æ–°è¦ä½œæ? 393 * 394 * @param enc ファイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–‡å—å? 395 */ 396 public void setEncode( final String enc ) { 397 encode = enc; 398 } 399 400 /** 401 * èªã¿å–りå…?ƒ•ァイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–‡å—å?ã‚’å–å¾—ã—ã¾ã™ã? 402 * ファイルã¯ã€BufferedReader ã§å—ã‘å–ã‚‹ç‚ºã€æœ¬æ¥ã¯ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã?ä¸è¦ã§ã™ãŒã€? 403 * 固定長ファイルã®èªã¿å–り時ã?ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰å?割時ã«ã€æŒ‡å®šã?エンコード㧠404 * åˆ?‰²ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?(例ãˆã°ã€åŠè§’æ–‡å—ã?ã€Shift_JIS ã§ã¯ã€?¼‘ãƒã‚¤ãƒ? 405 * 406 * @og.rev 3.5.4.5 (2004/01/23) æ–°è¦ä½œæ? 407 * 408 * @return ファイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–‡å—å? 409 */ 410 protected String getEncode() { 411 return encode; 412 } 413 414 /** 415 * è¡Œç•ªå·æƒ??を指定[true:使用ã—ã¦ã?‚‹/false:ã—ã¦ã?ªã„]ã—ã¾ã?åˆæœŸå€¤:true)ã€? 416 * 417 * 通常ã®ãƒ•ォーマットã§ã¯ã€å„行ã?å…ˆé?ã«è¡Œç•ªå·ãŒå?力ã•れã¦ã?¾ã™ã? 418 * èªã¿å–り時ã«ã€?NAME 属æ?を使用ã™ã‚‹å ´åˆã?ã€ã“ã®è¡Œç•ªå·ã‚’無視ã—ã¦ã?¾ã™ã? 419 * #NAME 属æ?を使用ã›ãšã€columns 属æ?ã§ã‚«ãƒ©ãƒ?を指定ã™ã‚‹å?å?他シスãƒ?ƒ ã® 420 * 出力ファイルをèªã¿å–るケースç?ã§ã¯ã€è¡Œç•ªå·ã‚‚å˜åœ¨ã—ãªã?‚±ãƒ¼ã‚¹ãŒã‚りã? 421 * ãã?様ãªå ´åˆã«ã€useNumber="false" を指定ã™ã‚Œã?ã€ãƒ‡ãƒ¼ã‚¿ã®æœ??ã‹ã‚‰èªã¿å–り始ã‚ã¾ã™ã? 422 * ã“ã?å ´åˆã?出力データã®ã‚«ãƒ©ãƒ??並ã³é ?Œå¤‰æ›´ã•れãŸå?åˆã?columns 属æ?ã‚? 423 * æŒ?®šã—ãªãŠã™å¿?¦ãŒã‚りã¾ã™ã?ã§ã€ã§ãã‚‹ã?‘ã€?NAME 属æ?を使用ã™ã‚‹ã‚ˆã†ã« 424 * ã—ã¦ãã ã•ã„ã€? 425 * ãªãŠã?EXCEL 入力ã«ã¯ã€ã“ã®è¨å®šã?é©ç”¨ã•れã¾ã›ã‚“ã€?暫定対å¿? 426 * åˆæœŸå€¤ã¯ã€true(使用ã™ã‚‹) ã§ã™ã? 427 * 428 * @og.rev 3.7.0.5 (2005/04/11) æ–°è¦è¿½åŠ? 429 * 430 * @param useNumber è¡Œç•ªå·æƒ?? [true:使用ã™ã‚‹/false:使用ã—ãªã„] 431 */ 432 public void setUseNumber( final boolean useNumber ) { 433 this.useNumber = useNumber ; 434 } 435 436 /** 437 * ãƒ??ã‚¿ã®èªã¿å§‹ã‚ã®åˆæœŸå€¤ã‚’å–å¾—ã—ã¾ã™ã? 438 * 439 * TAB区åˆ?‚Šãƒ?‚ストやEXCELç‰ã?ãƒ??ã‚¿ã®èªã¿å§‹ã‚ã®åˆæœŸå€¤ã‚’指定ã—ã¾ã™ã? 440 * ファイルã®å…ˆé?行ãŒã€?¼è¡Œã¨ã—ã¦ã‚«ã‚¦ãƒ³ãƒˆã—ã¾ã™ã?ã§ã€è¨å®šå?ã¯ã€èªã¿é£›ã?ã? 441 * ä»¶æ•°ã«ãªã‚Šã¾ã™ã?(?‘ã¨æŒ?®šã™ã‚‹ã¨ã€?¼‘ä»¶èªã¿é£›ã?ã—ã??’行目ã‹ã‚‰èªã¿è¾¼ã¿ã¾ã™ã?) 442 * èªã¿é£›ã?ã—ã?ã€ã‚³ãƒ¡ãƒ³ãƒˆè¡Œãªã©ã¯ã€ç„¡è¦–ã—ã¾ã™ã?ã§ã€å®Ÿéš›ã®è¡Œæ•°åˆ?ªã¿é£›ã?ã—ã¾ã™ã? 443 * ?ƒNAME属æ?ã‚??columns 属æ?ã¯ã€æœ‰åйã§ã™ã? 444 * 445 * @og.rev 5.1.6.0 (2010/05/01) æ–°è¦ä½œæ? 446 * 447 * @return èªã¿å§‹ã‚ã®åˆæœŸå€¤ 448 */ 449 public int getSkipRowCount() { 450 return skipRowCount ; 451 } 452 453 /** 454 * ãƒ??ã‚¿ã®èªã¿é£›ã?ã—ä»¶æ•°ã‚’è¨å®šã—ã¾ã™ã? 455 * 456 * TAB区åˆ?‚Šãƒ?‚ストやEXCELç‰ã?ãƒ??ã‚¿ã®èªã¿å§‹ã‚ã®åˆæœŸå€¤ã‚’指定ã—ã¾ã™ã? 457 * ファイルã®å…ˆé?行ãŒã€?¼è¡Œã¨ã—ã¦ã‚«ã‚¦ãƒ³ãƒˆã—ã¾ã™ã?ã§ã€è¨å®šå?ã¯ã€èªã¿é£›ã?ã? 458 * ä»¶æ•°ã«ãªã‚Šã¾ã™ã?(?‘ã¨æŒ?®šã™ã‚‹ã¨ã€?¼‘ä»¶èªã¿é£›ã?ã—ã??’行目ã‹ã‚‰èªã¿è¾¼ã¿ã¾ã™ã?) 459 * èªã¿é£›ã?ã—ã?ã€ã‚³ãƒ¡ãƒ³ãƒˆè¡Œãªã©ã¯ã€ç„¡è¦–ã—ã¾ã™ã?ã§ã€å®Ÿéš›ã®è¡Œæ•°åˆ?ªã¿é£›ã?ã—ã¾ã™ã? 460 * ?ƒNAME属æ?ã‚??columns 属æ?ã¯ã€æœ‰åйã§ã™ã? 461 * 462 * @og.rev 5.1.6.0 (2010/05/01) æ–°è¦ä½œæ? 463 * 464 * @param count èªã¿å§‹ã‚ã®åˆæœŸå€¤ 465 */ 466 public void setSkipRowCount( final int count ) { 467 skipRowCount = count; 468 } 469 470 /** 471 * èªå–å?ç?§ãƒ©ãƒ™ãƒ«ã‚’コードリソースã«é€?¤‰æ›ã‚’行ã†ã‹ã©ã?‹ã‚’指定ã—ã¾ã™ã? 472 * 473 * TableWriter_Renderer ç³»ã®ã‚¯ãƒ©ã‚¹ã§å‡ºåŠ›ã—ãŸå?åˆã?ã€ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ãŒãƒ©ãƒ™ãƒ«ã§å‡ºåŠ›ã•れã¾ã™ã? 474 * ãã?ファイルをèªã¿å–ã‚‹ã¨ã€å½“ç„¶ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã? 475 * ã“ã“ã§ã¯ã€ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã®ã‚«ãƒ©ãƒ?«å¯¾ã—ã¦ã€ãƒ©ãƒ™ãƒ«ã‹ã‚‰ã‚³ãƒ¼ãƒ‰ã‚’求ã‚ã‚‹é?変æ›ã‚’行ã†ã“ã¨ã§ã€? 476 * Renderer ç³»ã§å‡ºåŠ›ã—ãŸãƒ•ァイルをå–り込ã‚?“ã¨ãŒã§ãるよã†ã«ã—ã¾ã™ã? 477 * 478 * ã“ã“ã§ã¯ã€TableWriter ç³»ã¨åŒæ§˜ã«ã€TableReader_Renderer ç³»ã®ã‚¯ãƒ©ã‚¹ã‚’作るã®ã§ã¯ãªãã? 479 * 属æ?値ã®ãƒ•ラグã§ã€åˆ¶å¾¡ã—ã¾ã™ã? 480 * å°?¥çš?«ã¯ã€TableWriter 系もå»?¢ã—ã¦ã€åŒæ§˜ã?フラグã§åˆ¶å¾¡ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã™ã‚‹äºˆå®šã§ã™ã? 481 * 482 * @og.rev 5.2.1.0 (2010/10/01) æ–°è¦ä½œæ? 483 * 484 * @param useRenderer コードリソースã®ãƒ©ãƒ™ãƒ«å¤‰æ›ã‚’行ã†ã‹ã©ã?‹ã‚’指å®? 485 */ 486 public void setUseRenderer( final boolean useRenderer ) { 487 this.useRenderer = useRenderer; 488 } 489 490 /** 491 * è¡Œç•ªå·æƒ??ã‚’ã?使用ã—ã¦ã?‚‹(true)/ã—ã¦ã?ªã?false)ã‚’è¿”ã—ã¾ã™ã? 492 * 493 * 通常ã®ãƒ•ォーマットã§ã¯ã€å„行ã?å…ˆé?ã«è¡Œç•ªå·ãŒå?力ã•れã¦ã?¾ã™ã? 494 * èªã¿å–り時ã«ã€?NAME 属æ?を使用ã™ã‚‹å ´åˆã?ã€ã“ã®è¡Œç•ªå·ã‚’無視ã—ã¦ã?¾ã™ã? 495 * #NAME 属æ?を使用ã›ãšã€columns 属æ?ã§ã‚«ãƒ©ãƒ?を指定ã™ã‚‹å?å?他シスãƒ?ƒ ã® 496 * 出力ファイルをèªã¿å–るケースç?ã§ã¯ã€è¡Œç•ªå·ã‚‚å˜åœ¨ã—ãªã?‚±ãƒ¼ã‚¹ãŒã‚りã? 497 * ãã?様ãªå ´åˆã«ã€useNumber="false" を指定ã™ã‚Œã?ã€ãƒ‡ãƒ¼ã‚¿ã®æœ??ã‹ã‚‰èªã¿å–り始ã‚ã¾ã™ã? 498 * ã“ã?å ´åˆã?出力データã®ã‚«ãƒ©ãƒ??並ã³é ?Œå¤‰æ›´ã•れãŸå?åˆã?columns 属æ?ã‚? 499 * æŒ?®šã—ãªãŠã™å¿?¦ãŒã‚りã¾ã™ã?ã§ã€ã§ãã‚‹ã?‘ã€?NAME 属æ?を使用ã™ã‚‹ã‚ˆã†ã« 500 * ã—ã¦ãã ã•ã„ã€? 501 * ãªãŠã?EXCEL 入力ã«ã¯ã€ã“ã®è¨å®šã?é©ç”¨ã•れã¾ã›ã‚“ã€?暫定対å¿? 502 * åˆæœŸå€¤ã¯ã€true(使用ã™ã‚‹) ã§ã™ã? 503 * 504 * @og.rev 3.7.0.5 (2005/04/11) æ–°è¦è¿½åŠ? 505 * @og.rev 4.0.0.0 (2007/07/20) メソãƒ?ƒ‰å変更(getUseNumber() â‡? isUseNumber()) 506 * 507 * @return è¡Œç•ªå·æƒ??ã‚’ã?使用ã—ã¦ã?‚‹(true)/ã—ã¦ã?ªã?false)を指å®? 508 */ 509 protected boolean isUseNumber() { 510 return useNumber ; 511 } 512 513 /** 514 * ãƒ?ƒãƒ?‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã™ã? 515 * 516 * EXCELãªã©ã‚’èªã¿å–ã‚‹å ´åˆã?シートã?ージã§èªã¿å–ã‚‹ã¨ã€ã‚¨ãƒ©ãƒ¼æ™‚ã?行番å·ãŒã?連番ã«ãªã‚‹ãŸã‚ã? 517 * ã©ã®ã‚·ãƒ¼ãƒˆãªã®ã‹ã?判らãªããªã‚Šã¾ã™ã? 518 * ãã“ã§ã€ã©ã?—ã¦ã‚‚ã‚ã‹ã‚‰ãªããªã£ãŸå?åˆã«å‚™ãˆã¦ã€ãƒ‡ãƒãƒƒã‚°æƒ??ã‚’å?力ã§ãるよã†ã«ã—ã¾ã™ã? 519 * 通常ã¯ä½¿ç”¨ã—ã¾ã›ã‚“ã®ã§ã€è¨å®šã‚’無視ã—ã¾ã™ã? 520 * åˆæœŸå€¤ã¯ã€false:ãƒ?ƒãƒ?‚°æƒ??ã‚’å?力ã—ãªã?ã§ã™ã? 521 * 522 * @og.rev 5.5.7.2 (2012/10/09) æ–°è¦ä½œæ? 523 * 524 * @param useDebug ãƒ?ƒãƒ?‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹ã‚’指å®? 525 */ 526 public void setDebug( final boolean useDebug ) { 527 this.useDebug = useDebug; 528 } 529 530 /** 531 * ãƒ?ƒãƒ?‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹ã‚’å–å¾—ã—ã¾ã™ã? 532 * 533 * EXCELãªã©ã‚’èªã¿å–ã‚‹å ´åˆã?シートã?ージã§èªã¿å–ã‚‹ã¨ã€ã‚¨ãƒ©ãƒ¼æ™‚ã?行番å·ãŒã?連番ã«ãªã‚‹ãŸã‚ã? 534 * ã©ã®ã‚·ãƒ¼ãƒˆãªã®ã‹ã?判らãªããªã‚Šã¾ã™ã? 535 * ãã“ã§ã€ã©ã?—ã¦ã‚‚ã‚ã‹ã‚‰ãªããªã£ãŸå?åˆã«å‚™ãˆã¦ã€ãƒ‡ãƒãƒƒã‚°æƒ??ã‚’å?力ã§ãるよã†ã«ã—ã¾ã™ã? 536 * 537 * @og.rev 5.5.7.2 (2012/10/09) æ–°è¦ä½œæ? 538 * 539 * @return ãƒ?ƒãƒ?‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹(true:ã™ã‚‹/false:ã—ãªã? 540 */ 541 protected boolean isDebug() { 542 return useDebug ; 543 } 544 }