- PR -

編集中のExcelブックへのアクセス

1
投稿者投稿内容
こころね
会議室デビュー日: 2007/12/07
投稿数: 3
投稿日時: 2007-12-07 09:23
ColdFusionMX6.0+Oracle9iで社内WEBアプリを構築しております。
すでに開発終了した機能なのですが、既存のExcelファイルをPOIを
使って読み込み、Oracleのデータで更新後、書き込むという機能なのですが、
クライアントで、対象となるExcelファイルを開いた状態で、処理を実行した
場合、エラー処理をしたいのですが、どのようにしたらよろしいでしょうか?
以下は、現在のReadロジックです。
public HSSFWorkbook readXls(String string0)
{
HSSFRow row = null;
try{
fis = new FileInputStream(string0);
fs = new POIFSFileSystem(fis);
wb = new HSSFWorkbook(fs);
fis.close();
return wb;
} catch(IOException e) {
return null;
}
}
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-12-10 12:40
closeはfinallyブロックでやらないと。IOExceptionをキャッチしたら、特別な
処理を必要としないんだったら、これでも良いかもしれませんが、catchブロック
から何らかの例外をスローしたりした方がいいかもしれませんよ。
こころね
会議室デビュー日: 2007/12/07
投稿数: 3
投稿日時: 2007-12-10 13:00
ご指摘ありがとうございます。
現行のプログラムでは、Exceptionに引っかからなかったのです。

VBスクリプトで編集の有無を確認するようにしようかと考えております。
JavaのFileInputStreamでは、無理なのでしょうかね。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-12-10 13:26
OSの実装依存になると思いますが、NIOのロック機能で
ロックの有無を判定することは可能かもしれませんよ。
こころね
会議室デビュー日: 2007/12/07
投稿数: 3
投稿日時: 2007-12-10 16:15
java.nio.channels.FileLock の記事を調べてみました。
ロック制御のかかっていないファイルに対しての
ロック制御の付加ができるようですが、
Excelのように独自のロック機能があり、それを参照する
のに、FileLock が利用できるかどうかは、判別できませんでした。

今回は、先ほども、報告しましたが、VBSでの対応としたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)