セルタイプの設定
広告
前のページではセルに設定されているセルタイプの取得を行いました。セルタイプは設定した値に応じて自動的に設定されますが、ここではセルタイプを明示的に設定する方法を確認します。
セルタイプを設定するにはCellインターフェースで用意されているsetCellTypeメソッドを使います。
void setCellType(int cellType)
Set the cells type (numeric, formula or string) Throws: java.lang.IllegalArgumentException - if the specified cell type is invalid
引数にはセルタイプを表すint型の値を取得できます。設定可能な値はCellインターフェースで定義されており次のいずれかの値となります。
値 | 定数 |
---|---|
0 | Cell.CELL_TYPE_NUMERIC |
1 | Cell.CELL_TYPE_STRING |
2 | Cell.CELL_TYPE_FORMULA |
3 | Cell.CELL_TYPE_BLANK |
4 | Cell.CELL_TYPE_BOOLEAN |
5 | Cell.CELL_TYPE_ERROR |
実際の使い方は次のようになります。
Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createSheet(0); Cell cell = row.createCell(0); cell.setCellValue(123); cell.setCellType(Cell.CELL_TYPE_STRING);
この場合は、セルのセルタイプを「CELL_TYPE_STRING」に設定しています。
サンプルプログラム
実際に試してみましょう。
import org.apache.poi.ss.usermodel.*; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import java.io.*; import java.util.Calendar; import java.util.Date; public class Sample6_1{ public static void main(String[] args){ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(1); Cell cell0 = row.createCell(0); Cell cell1 = row.createCell(1); Cell cell2 = row.createCell(2); cell0.setCellValue(123); cell1.setCellValue(123); cell2.setCellValue(123); cell0.setCellType(Cell.CELL_TYPE_NUMERIC); cell1.setCellType(Cell.CELL_TYPE_STRING); cell2.setCellType(Cell.CELL_TYPE_BOOLEAN); FileOutputStream out = null; try{ out = new FileOutputStream("sample6_1.xls"); wb.write(out); }catch(IOException e){ System.out.println(e.toString()); }finally{ try { out.close(); }catch(IOException e){ System.out.println(e.toString()); } } } }
プログラムを実行すると、同じ値が設定された3つのセルに対して異なるセルタイプを設定します。それでは作成されたExcelファイルを開いてみます。
設定された値が同じであってもセルタイプによって表示形式が変わったり値そのものがセルタイプに合わせて変更されることが確認できます。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。