- trick
- 常連さん
- 会議室デビュー日: 2003/11/14
- 投稿数: 31
|
投稿日時: 2007-01-22 21:15
引用: |
|
ぶさいくろうさんの書き込み (2007-01-22 20:55) より:
引用: |
|
trickさんの書き込み (2007-01-22 19:28) より:
はい、そのようにしました。
現在、swtを使用してプロセスを殺す方法を模索中です。
|
そのようにした?実際のコード出してみて。
まさかと思うけど指摘された本質がわかっていないような気がしたので確認したい。
|
取り合えず、現在は以下のようにしています。
public void excelQuit() {
try {
xlSheet.release();
xlSheets.release();
xlBook.Close(false,null,false); ←ここでException
xlBook.release();
xlBooks.release();
excel.Quit();
excel.release();
rm.release();
} catch (Exception e) {
System.out.println("quitに失敗");
}
}
|
- a-san
- ベテラン
- 会議室デビュー日: 2004/06/01
- 投稿数: 53
|
投稿日時: 2007-01-24 01:33
JCom作者です。
各オブジェクトのrelease()は呼ぶ必要はありません。
それらはすべて、ReleaseManagerの rm.release()でキチンとやってくれます。
以下のソースで試してみてください。
コード: |
|
public void excelQuit() {
try {
//xlSheet.release();
//xlSheets.release();
xlBook.Close(false,null,false); ←ここでException
//xlBook.release();
//xlBooks.release();
excel.Quit();
//excel.release();
//rm.release();
} catch (Exception e) {
System.out.println("quitに失敗");
} finally {
rm.release(); // こっちでrelease()☆
}
}
|
|
- trick
- 常連さん
- 会議室デビュー日: 2003/11/14
- 投稿数: 31
|
投稿日時: 2007-01-24 01:44
引用: |
|
a-sanさんの書き込み (2007-01-24 01:33) より:
JCom作者です。
各オブジェクトのrelease()は呼ぶ必要はありません。
それらはすべて、ReleaseManagerの rm.release()でキチンとやってくれます。
以下のソースで試してみてください。
コード: |
|
public void excelQuit() {
try {
//xlSheet.release();
//xlSheets.release();
xlBook.Close(false,null,false); ←ここでException
//xlBook.release();
//xlBooks.release();
excel.Quit();
//excel.release();
//rm.release();
} catch (Exception e) {
System.out.println("quitに失敗");
} finally {
rm.release(); // こっちでrelease()☆
}
}
|
|
おおお、作者の方から回答いただけるとは・・・。
ありがとうございます。
試してみます。
結局、プロセスを殺す方法は、四苦八苦した挙句にうまくいきませんでした。
(swtやvbaを使おうとしたのですが、どうしてもプロセスIDが取れなくて・・・。)
ところで、本当は別スレッドを立てる必要があると思うのですが、JcomまたはJcomを応用して、VBAのPictures.Insertと同じことを行うことは可能でしょうか・・・。
なんて、都合よすぎますよね。
実は、Javaから出力するExcelに画像を貼り付けたいという要望がありまして。
|
- a-san
- ベテラン
- 会議室デビュー日: 2004/06/01
- 投稿数: 53
|
投稿日時: 2007-01-24 21:51
VBAはあまり詳しくないのですが、VBAではどのようなコードになるのでしょうか?
それがわかれば、JComで同じようにプロパティやメソッドを呼んでいけばできると思います。
|