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.plugin.io; 017 018 import org.apache.poi.openxml4j.exceptions.InvalidFormatException; 019 import org.apache.poi.ss.usermodel.Cell; 020 import org.apache.poi.ss.usermodel.Row; 021 import org.apache.poi.ss.usermodel.Sheet; 022 import org.apache.poi.ss.usermodel.Workbook; 023 import org.opengion.hayabusa.common.HybsSystem; 024 import org.opengion.hayabusa.common.HybsSystemException; 025 026 /** 027 * POI による、EXCELバイナリファイルに対する、ユー?リ?クラスです? 028 * 029 * ここでは、アク?ブセル領域になるよ?、不要なセル?を削除します? 030 * 031 * 入力形式?、openXML形式にも対応して?す? 032 * ファイルの?に応じて?xlsと.xlsxのどちらで読み取るか?、?部? 033 * 自動判定されます? 034 * 035 * @og.rev 5.5.7.2 (2012/10/09) 新規作? 036 * @og.group そ?? 037 * 038 * @version 4.0 039 * @author Kazuhiko Hasegawa 040 * @since JDK5.0, 041 */ 042 public class ExcelUtil { 043 //* こ?プログラ??VERSION??を設定します? {@value} */ 044 private static final String VERSION = "5.5.7.2 (2012/10/09)" ; 045 046 /** 047 * DBTableModel から ?式???タを作?して,BufferedReader より読み取ります? 048 * コメン?空行を除き???の行?、??名が?です? 049 * それ以降?、コメン?空行を除き???タとして読み込んで?ます? 050 * こ?メソ?は、EXCEL 読み込み時に使用します? 051 * 052 * @og.rev 5.5.7.2 (2012/10/09) 新規追? 053 * 054 * @param wb 処?象のワークブック 055 * @return アク?ブ?域?みに再設定された、ワークブック 056 */ 057 public static Workbook activeWorkbook( final Workbook wb ) { 058 int sheetSu = wb.getNumberOfSheets(); 059 for( int shno = 0; shno<sheetSu; shno++ ) { 060 Sheet sheet = wb.getSheetAt(shno); 061 062 int nFirstRow = sheet.getFirstRowNum(); 063 int nLastRow = sheet.getLastRowNum(); 064 065 for( int nIndexRow = nFirstRow; nIndexRow <= nLastRow; nIndexRow++) { 066 Row oRow = sheet.getRow(nIndexRow); 067 if( oRow != null ) { 068 boolean isAllBrank = true; 069 int nFirstCell = oRow.getFirstCellNum(); 070 int nLastCell = oRow.getLastCellNum(); 071 for( int nIndexCell = nFirstCell; nIndexCell <= nLastCell; nIndexCell++) { 072 Cell oCell = oRow.getCell(nIndexCell); 073 if( oCell != null && oCell.getCellType() != Cell.CELL_TYPE_BLANK ) { 074 isAllBrank = false; 075 break; 076 } 077 } 078 if( isAllBrank ) { sheet.removeRow( oRow ); } 079 } 080 } 081 } 082 return wb ; 083 } 084 }