gpt4 book ai didi

excel - 如何使 Win32::OLE 在 64 位 MS OFFICE 安装上工作

转载 作者:行者123 更新时间:2023-12-02 00:54:39 27 4
gpt4 key购买 nike

我有两台电脑,一台安装了 MS Office 2013 32 位,另一台安装了 MS Office 64 位。我有使用 Win32::OLE 的 Perl 代码用于操作 XLS 电子表格的 Perl 模块。该代码在 32 位 PC 上运行完美,但在 64 位 PC 上出现问题。

经过一番研究后,我发现了这一点。问题出在下面这行代码:

use Win32::OLE::Const 'Microsoft Excel .* Object Library';

我看了里面Win32::OLE::Const模块,并且该模块似乎正在注册表中查找该库。当我从 32 位和 64 位打印注册表中的所有条目时,我发现该库在 32 位上可用,但在 64 位上不可用。

有没有办法在 64 位上安装该库?如果没有,是否有任何其他模块可以允许 Excel 的 OLE 自动化?

我的 Perl 脚本所需要做的就是打开 XLS 文件并将其另存为 CSV。我正在用Spreadsheet::ParseExcel来做这件事和 Spreadsheet::XLSX在所有其他脚本中。此特定 XLS 文件的问题在于它受密码保护并使用非标准密码加密。因此 Spreadsheet::ParseExcel 无法打开它。 Win32::OLE 在 32 位上打开文件没有问题。

如果需要,可以提供代码。

请指教。

谢谢你,-安德烈

最佳答案

我使用您的 Win32::OLE::Const 模块让 Excel 常量在 Perl 中可用。

最近,我使用 Office 2016 进行了干净的 Win7 x64 安装,但脚本不再工作(使用最新版本的 Win32::OLE::Const 模块,该模块与当前的(在06/04/2016) ActiverPerl 64 位安装)。

经过一番调查,我发现 Win32::OLE::Const 没有看到 Excel 自动化对象,尽管它已正确注册并在注册数据库中可用。

在注册数据库中,以下键包含 Excel 可执行文件的路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\Win64

如果我手动添加新 key

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\Win32 

使用与 Win64 key 相同的路径,然后 Perl 脚本找到 Excel 类型库并再次工作。

希望这有帮助。

关于excel - 如何使 Win32::OLE 在 64 位 MS OFFICE 安装上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25509960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com