【发布时间】:2010-10-02 11:45:40
【问题描述】:
当我通过 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 中创建文件,保存 以兼容的格式,例如 作为文本格式。
- 如果您怀疑文件已损坏,请单击帮助以获取有关 解决问题。
- 如果您仍想查看文件中包含的文本,请单击“确定”。 然后在文本导入中单击完成 向导。
确定取消
有时会出现一个类似的对话框,其中包含“确定”、“取消”和“帮助”按钮。
我无法控制提供给脚本的文件的质量。
【问题讨论】:
-
距离上次涉及对话框的事件已经过去 3 或 4 天。我不得不相信我原来的陈述中有一些不正确的地方。也许 Excel 实例已损坏?如果有新的事件发生,我会重新讨论这个话题。
标签: perl excel automation dialog ole