Как я могу гарантировать, что всплывающие диалоговые окна не появятся при автоматизации Microsoft Excel с помощью OLE? Я использую модуль Perl (Win32 :: OLE). Я могу избежать большинства всплывающих диалоговых окон, используя следующий код:
use Win32::OLE;
use Win32::OLE::Variant;
use Win32::OLE::Const;
my $excel_symbols = Win32::OLE::Const->Load('Microsoft Excel');
my $excel = Win32::OLE->new('Excel.Application', sub { $_[0]->Quit();} );
$excel->{'Visible'} = 0;
$excel->{'DisplayAlerts'} = 0;
$excel->Workbooks->Open('c:\some_excel_file.xls',
{ 'UpdateLinks' => $excel_symbols->{'xlUpdateLinksNever'},
'ReadOnly' => 1,
'IgnoreReadOnlyRecommended' => 1
});
Однако для некоторых файлов я продолжаю получать диалоговое окно со следующим текстом:
Формат этого файла неизвестен.
- Если вы знаете, что файл принадлежит другой программе, несовместимой с Microsoft Excel, нажмите «Отмена», а затем откройте этот файл в исходном приложении. Если вы хотите открыть файл позже в Microsoft Excel, сохраните его в совместимом формате, например в текстовом формате.
- Если вы подозреваете, что файл поврежден, щелкните «Справка» для получения дополнительных сведений о решении проблемы.
- Если вы все еще хотите увидеть, какой текст содержится в файле, нажмите «ОК». Затем нажмите «Готово» в мастере импорта текста.
ОК Отменить
Иногда появляется похожий диалог, содержащий кнопки «ОК», «Отмена» и «Справка».
Я не могу контролировать качество файлов, предоставляемых скриптам.