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