1

私は perl と Win32::OLE を使用して、いくつかの Excel タスクを自動化しています。Excelファイルが大きすぎるため、プロセスが完了するまでにかなりの時間がかかります...しかし、一晩放置した後、「タイムアウト」の問題のためにスタックしたと思います。ファイルサイズを小さくすればOKです。

とにかくタイムアウトを増やすには??

私のコードの一部:

#   Open the rules file
my $xlBook = $xlApp->Workbooks->Open("$file");
my $xlSheet = $xlBook->Worksheets(1);

#Replace FALSE -> 0
$xlSheet->Cells->Replace ({ What => "FALSE", Replacement => "0" });
#Replace TRUE -> 1
$xlSheet->Cells->Replace ({ What => "TRUE", Replacement => "1" });
4

1 に答える 1

1

オートメーション タイムアウトを変更する方法は、CoRegisterMessageFilterを呼び出してIMessageFilter実装を登録し、COM 呼び出しを処理することです。たとえば、 OLEUIBusy を呼び出してサーバー ビジー ダイアログを表示します

Win32::OLE がこれを実装しているとは思わないので、CoRegisterMessageFilter コードをインプロセス COM サーバーにラップして、メッセージ フィルターをサーバーに登録してみてください。

于 2012-06-16T23:19:26.240 に答える