ApachePOIで、Excelのセルの型を取得する方法です。
サンプルソース
例)読込んだExcelの1シート目のA1セルの型を表示する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import java.io.FileInputStream; import java.io.InputStream; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class PoiSample { public static void main(String[] args) { InputStream is = null; Workbook wb = null; try { //Excelファイルを読み込む is = new FileInputStream("D:¥¥sample.xlsx"); wb = WorkbookFactory.create(is); Sheet sh = wb.getSheetAt(0); //1番目のシートを読み込む Row row = sh.getRow(0); //1行目を読み込む Cell cell = row.getCell(0); //1セル目を読み込む //セルの型を判定する CellType cType = cell.getCellType(); switch(cType) { case STRING: System.out.println("文字型です。"); break; case NUMERIC: System.out.println("数値型です。"); break; case FORMULA: System.out.println("関数です。"); break; case BOOLEAN: System.out.println("真偽型です。"); break; case BLANK: System.out.println("空です。"); break; } } catch (Exception ex) { ex.printStackTrace(); } finally { try { wb.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } } } |
実行すると、読み込んだExcelの1シート目のA1セルの型をコンソールに出力します。
セルの型の種類
セルの型には以下の型があります。
定数 | 意味 |
---|---|
CellType.STRING | 文字型 |
CellType.NUMERIC | 数値型、日付型 ※日付もNUMERICと判定されます |
CellType.FORMULA | Excel関数型 ※例)NOW()、SUM()などのExcelの関数 |
CellType.BOOLEAN | 真偽型 ※例)TRUE、FALSE |
CellType.BLANK | 空 ※セルに値がセットされていない場合の型です |
備考
- .xlsx形式、.xls形式どちらのExcel形式にも対応します。
(20行目で読み込むExcelを自動判定します。)