top / index / prev / next / target / source

2005-02-13 diary: Java: Jakarta POI (HSSF) を用いたExcelファイルを新規作成するサンプル

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

old-v2

Java: Jakarta POI (HSSF) を用いたExcelファイルを新規作成するサンプル

Jakarta POIを用いたExcelファイルを新規作成するトイプログラムを作りました。サンプルソースコードをメモしておきます。

Jakarta POI (HSSF) を用いたExcelファイルを新規作成するサンプル

Jakarta POIを使ってExcelブックを新規作成するサンプルです。

確認に利用した動作環境

動作条件

PoiWriteExcelSample.java

/*
 * Jakarta POI: Excelファイルの新規作成サンプル
 * Copyright (C) 2005 伊賀敏樹
 * 作成日: 2005/02/13
 */

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 * @author Tosiki IGA
 */
public class PoiWriteExcelSample {

        public static void main(String[] args) {
                System.out.println("Excelブックを新規作成してファイル保存します.");
                HSSFWorkbook hssfWorkbook = null;
                hssfWorkbook = new HSSFWorkbook();
                System.out.println("Excelシートを新規作成します.");
                HSSFSheet hssfSheet = hssfWorkbook.createSheet("Sheet1");
                if (hssfSheet == null) {
                        System.err.println("予期せぬ例外.指定のExcelシート作成に失敗しました.");
                        return;
                }
                System.out.println("シートに行を新規作成します.");
                HSSFRow hssfRow = hssfSheet.createRow(0);
                if (hssfRow == null) {
                        System.err.println("指定のExcel行の作成に失敗しました. "
                                        + "なお、行は0オリジンとなっています。つまり1行目は 0 と指定します。");
                        return;
                }

                System.out.println("行にA列を新規作成します.");
                HSSFCell hssfCell = hssfRow.createCell((short) 0);
                if (hssfCell == null) {
                        System.err.println("指定のExcel列の作成に失敗しました. "
                                        + "なお、列は0オリジンとなっています。つまりA列は 0 と指定します。");
                        return;
                }
                hssfCell.setEncoding(HSSFCell.ENCODING_UTF_16);
                hssfCell.setCellValue("値のセット");

                System.out.println("行にB列を新規作成します.");
                hssfCell = hssfRow.createCell((short) 1);
                if (hssfCell == null) {
                        System.err.println("指定のExcel列の作成に失敗しました. "
                                        + "なお、列は0オリジンとなっています。つまりB列は 1 と指定します。");
                        return;
                }
                hssfCell.setEncoding(HSSFCell.ENCODING_UTF_16);
                hssfCell.setCellValue(123456.78);

                System.out.println("行にC列を新規作成します.");
                hssfCell = hssfRow.createCell((short) 2);
                if (hssfCell == null) {
                        System.err.println("指定のExcel列の作成に失敗しました. "
                                        + "なお、列は0オリジンとなっています。つまりC列は 2 と指定します。");
                        return;
                }
                hssfCell.setEncoding(HSSFCell.ENCODING_UTF_16);
                hssfCell.setCellValue(new Date());

                OutputStream outStream = null;
                try {
                        outStream = new BufferedOutputStream(new FileOutputStream(
                                        "OutputExcel.xls"));
                        hssfWorkbook.write(outStream);
                        System.out.println("新規作成したExcelブックのファイル保存に成功しました.");
                } catch (IOException ex) {
                        ex.printStackTrace();
                } finally {
                        try {
                                outStream.close();
                        } catch (IOException ex2) {
                                ex2.printStackTrace();
                        }
                }
        }
}

他のJakarta POIのサンプル

他のAPIによる同様の実装


この日記について