如何保证在通过OLE自动化Microsoft Excel时不会出现弹出对话框?我正在使用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中打开文件,请将其保存为兼容格式,例如文本格式。
如果您怀疑文件已损坏,请单击“帮助”以获取有关解决问题的更多信息。
如果您仍想查看文件中包含的文本,请单击“确定”。然后在文本导入向导中单击“完成”。
有时会出现类似的对话框,其中包含“确定”、“取消”和“帮助”按钮。
我无法控制提供给脚本的文件的质量。