var Excel = new ActiveXObject('Excel.Application');
Excel.Visible = false;
var Excel_file = Excel.Workbooks.Open(Worksheet);
}
if(x == 2)
{
Excel_file.close(false);
Excel.Quit();
Excel.Application.Quit();
Excel = null;
Excel_file = null;
window.setTimeout(CollectGarbage, 10);
//Excel.DisplayAlerts = false;
}
Windows Task Manager DisplayActiveXObjectを(Excelは)私は、舞台裏でExcelアプリケーションを開きます(定義され、他の場所と呼ばれる)私の機能を実行して、それを閉じるためにActiveXObjectのを使用Procces <Javascript>で32
* EXCEL.EXEを残し。問題は、タスクマネージャによって、プログラムを実行するたびに、プロセスセクションにEXCEL.EXE * 32の新しいインスタンスが作成されるということです。
このスクリプトはウェブページ上にあり、1日を通して頻繁に実行されます。プログラムが実行されるたびに異なるインスタンスを作成することは現実的ではありません。
他の人が推薦したように、ドキュメント化されていない「CollectGarbage」を使用しようとしましたが、それでも問題は解決しません。
アイデア? ありがとうございます。
:
フィルタは、下のフィルタのいずれかを適用します。最新のインスタンスに限定することはできますか?言い換えれば、ユーザーは、プログラムの実行時に別のExcelファイルをロードすることがあります。「taskkill latest Excel.exe」などの節を追加することができます。また、ご協力いただきありがとうございます –
はい、できます。エクセルプロセスを開くたびに、プロセスIDを保存し、プロセスIDを使用してプロセスIDを閉じます。私は答えの下でいくつかのコマンドを投稿します。必要に応じて独自のコマンドを作成します。 – Chidambaram