JavaでJXLライブラリでExcelを扱う

JavaでJXLライブラリでExcelを扱う

JXLライブラリの開発が止まっているようですが、このライブラリを使う機会があったので使ってみました。

ファイル読み込み

jxl.WorkbookクラスのgetWorkBookメソッドを使用してxlsファイル読み込みむことが出来ます。

xlsファイルは読み込みできますが、xlsxファイルを読み込むとエラーとなります。

wikiに以下記載があります。xlsxはサポートしていません。

https://en.wikipedia.org/wiki/JXL_(API)

JXL API (a.k.a. Java Excel API) allows users to read, write, create, and modify sheets in an Excel(.xls) workbook at runtime. It doesn’t support .xlsx format.

ファイル書き込み

jxl.WorkbookクラスのcreateWorkBookメソッドを使用してxlsファイル読み込みむことが出来ます。

createSheetメソッドで最低でも一つシートを作成する必要があります。

最後にwriteメソッドでExcelが出力されます。

読み込んだファイルから書き込み

テンプレートファイルみたいなxlsを用意しておいて、そのxlsからファイルを書き込みます。

sample.xlsからout.xlsを出力してみます。

名前の定義

名前の定義を設定します。

jxl.write.WritableWorkbookクラスのaddNameAreaメソッドを使用します。

引数
第一 定義する名前
第二 シートオブジェクト
第三 先頭のColumn位置
第四 先頭のRow位置
第五 末尾のColumn位置
第六 末尾のRow位置

「数式」ー「名前の管理」から指定したセル範囲の名前が定義されていることが確認が出来ます。

JavaでJExcelライブラリでExcelを扱う

名前の定義を利用したドロップダウンリスト

ドロップダウンリストのセルを設定します。

WritableCellFeaturesクラスを使用します。これでC2セルにドロップダウンリストを表示されます。但しOffice2016でExcelを開くと入力規則は効くのですが、ドロップダウンリストが上手く表示されませんでした。

JavaでJXLライブラリでExcelを扱う

セルに値をセット

セルに値をセットします。

jxl.write.Labelクラスをnewします。コンストラクタの引数は以下の通りです。

引数
第一 Column位置
第二 Row位置
第三 セルにセットする値

WritableSheetクラスのaddCellメソッドでコンストラクタにLabelのインスタンスを渡します。

これでセルの値セットが出来ます。

Warning: Text Object on sheet “シート名” not supported – omitting

シートにオブジェクトが存在すると、「Warning: Text Object on sheet “シート名” not supported – omitting」という警告が出ます。

オブジェクトのコピーはサポートされていないという警告で除外されるようです。

JavaDoc

http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/index.html

ダウンロード

以下でダウンロードできます。

http://www.java2s.com/Code/Jar/j/jxl.htm

http://jexcelapi.sourceforge.net/

Mavenは以下です。※2011年05月

https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl/2.6.12

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA