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を使ってExcelブックを新規作成するサンプルです。

確認に利用した動作環境

動作条件

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による同様の実装

関連する日記

Last modified: $Date: 2018-04-18 $

登場キーワード


この日記について