是否执行Win32 :: OLE :: Const-> Load('Microsoft Excel');取决于Excel版本

问题描述 投票:0回答:1

我在perl中使用Win32::OLE::Const->Load()

$xl = Win32::OLE::Const->Load('Microsoft Excel');

然后我测试scalar(keys %{$xl})是否为零:

 if (scalar(keys %{$xl})==0) {
        return False;
    }
    else {
        return True;
    }

[我在支持Microsoft Excel 2003的计算机上测试了此代码,它给出了True,但是当我在有Microsoft Excel 2013的计算机中测试了相同的代码时,它给出了False

我还在提供2023的第一台机器上打印了scalar(keys %{$xl},在第二台机器上是0!

最佳问候

perl win32ole
1个回答
1
投票

搜索后,我找到了解决方法。

它在第二台计算机中给出0,因为在注册表中没有win32 Excel密钥。

解决方案是在HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.8\0\中添加Win32键

© www.soinside.com 2019 - 2024. All rights reserved.