ブック読み込みサンプルコード
public static int readBook(){
int rc;
JxlsLib JXLS = JxlsLib.INSTANCE;
/* WindowsでUTF8でない場合はSJISに文字コード設定 */
if (Platform.isWindows()){
if (!System.getProperty("file.encoding").equals("UTF-8")){
System.out.printf("X-TRAiN文字コードSJIS設定\n");
JXLS.set_charset("SJIS");
}
}
/* 開始ログ出力 */
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E曜日");
sdf.applyPattern("yyyy/MM/dd HH:mm:ss SSS");
System.out.printf("処理開始 %s\n", sdf.format(c.getTime()));
/* 読み込みExcelブックオープン */
String book = JXLS.read_book(BOOK_PATH);
if (book == null || book.length() == 0){
System.out.printf("ERROR:JXLS.read_book()");
return(-1);
}
rc = JXLS.error_code(book);
if (rc != 0){
String error_mesg = JXLS.error_mesg(book);
JXLS.scrap_book(book);
System.out.printf("ERROR:JXLS.read_book() rc=%d %s\n", rc, error_mesg);
return(-1);
}
int read_ct = 0;
/* シート数繰り返し */
for (int sheet=0; sheet
解説
テンプレートブックオブジェクトの作成
/* 読み込みExcelブックオープン */
String book = JXLS.read_book(BOOK_PATH);
if (book == null || book.length() == 0){
System.out.printf("ERROR:JXLS.read_book()");
return(-1);
}
read_book関数を使い、ブックオブジェクトを生成します。
オブジェクトの実体は、DLL/共有ライブラリ内に確保された、X-TRAiN用構造体の
アドレスを16進数に変換した文字列です。
以降の関数呼び出し時には、この値を使用します。
エラー時は戻り値としてNULLが返却されますが、これはメモリ確保ができなかった場合のみです。
読み込みエラーの判定は、error_code関数でエラーコードを、
error_mesg関数でエラーメッセージを取得して行います。
異常終了する場合は、scrap_book関数でメモリの解放を行ってください。
セル値の読み込み
/* シート数繰り返し */
for (int sheet=0; sheet
sheet_num関数は、シート数を返します。
open_sheet2関数は、シートインデックス(連番)に対応したシートにカレントシートを切り替えます。
sheet_name関数は、カレントシート名を返します。
row_num関数は、カレントシートの行数を返します。
column_name関数は、カレントブック内の引数で指定された行のカラム数を返します。
get_cell関数は、カレントブック内の引数で指定されたセルの値を文字列として返します。
ブックオブジェクトの解放
/* Excelブック解放 */
rc = JXLS.scrap_book(book);
if (rc != 0){
String error_mesg = JXLS.error_mesg(book);
System.out.printf("ERROR:JXLS.save_book() rc=%d %s\n", rc, error_mesg);
return(-1);
}
scrap_book関数を使い、ブックオブジェクトのメモリ解放を行います。