top / index / prev / next / target / source

2005-02-21 diary: Java: JExcelApi (Java Excel API) を用いたExcelファイルを新規作成するサンプル

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

old-v2

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

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

JExcelApi (Java Excel API) を用いたExcelファイルを新規作成するサンプル

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

確認に利用した動作環境

動作条件

/*
 * JExcelApi (Java Excel API): Excelファイルの新規作成サンプル
 * Copyright (C) 2005 伊賀敏樹
 * 作成日: 2005/02/21
 */

import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;

import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

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

    public static void main(String[] args) {
        System.out.println("Excelブックを新規作成してファイル保存します.");
        WritableWorkbook workbook = null;
        try {
            try {
                WorkbookSettings settings = new WorkbookSettings();
                // System.gc()「ガベージコレクション」の実行をOFFに設定
                settings.setGCDisabled(true);
                workbook = Workbook.createWorkbook(new File("OutputExcel.xls"),
                        settings);
                if (workbook == null) {
                    System.err.println("予期せぬ例外.指定のExcelブック作成に失敗しました.");
                    return;
                }

            } catch (IOException ex) {
                System.err.println("予期せぬ例外.指定のExcelブック作成に失敗しました."
                        + "ファイルがロックされているなどの可能性があります:" + ex.toString());
                return;
            }
            System.out.println("Excelシートを新規作成します.");
            WritableSheet sheet = workbook.createSheet("Sheet1", 0);
            if (sheet == null) {
                System.err.println("予期せぬ例外.指定のExcelシート作成に失敗しました.");
                return;
            }

            System.out.println("A列1行に文字列セルを新規作成します.");
            Label label = new Label(0, 0, "これは文字列です");
            try {
                sheet.addCell(label);
            } catch (WriteException ex) {
                System.err
                        .println("予期せぬ例外.セルの書き込みに失敗しました(1).:" + ex.toString());
            }

            System.out.println("A列2行に数値セルを新規作成します.");
            Number number = new Number(0, 1, 1234.5678);
            try {
                sheet.addCell(number);
            } catch (WriteException ex) {
                System.err
                        .println("予期せぬ例外.セルの書き込みに失敗しました(2).:" + ex.toString());
            }

            System.out.println("B列1行に日付セルを新規作成します.");
            Date now = Calendar.getInstance().getTime();
            DateTime datetime = new DateTime(1, 0, now);
            System.out.println("※単純に new Date()を与えると、タイムゾーン分ずれます.");
            try {
                sheet.addCell(datetime);
            } catch (WriteException ex) {
                System.err
                        .println("予期せぬ例外.セルの書き込みに失敗しました(3).:" + ex.toString());
            }

            try {
                workbook.write();
            } catch (IOException ex) {
                System.err.println("予期せぬ例外.ワークブックの書き込みに失敗しました.:"
                        + ex.toString());
            }
            System.out.println("新規作成したExcelブックのファイル保存に成功しました.");
        } finally {
            try {
                if (workbook != null) {
                    workbook.close();
                }
            } catch (WriteException ex) {
                System.err.println("予期せぬ例外.ワークブックのクローズに失敗しました(1).:"
                        + ex.toString());
            } catch (IOException ex) {
                System.err.println("予期せぬ例外.ワークブックのクローズに失敗しました(2).:"
                        + ex.toString());
            }
        }
    }
}

更新履歴

他のJExcelApiのサンプル

他のAPIによる同様の実装


この日記について