我可以在Perl中访问Excel使用的一些库吗?

时间:2014-04-08 17:18:53

标签: excel perl vba siebel

我们在Excel中有几个宏。在excel的引用中有一个名为SiebelHtml Type Libary的文件或者其他类似的文件。当它包含在Excel中时,它会加载许多函数和类。

例如

sApp as SiebelApplication
当我包含libary时,

编译。我在目录中找到了两个文件。它们是SiebelAX_Desktop_Integration.exe和SiebelAx_Desktop_Integration.inf。

是否有人知道我是否可以管理这些文件中的数据包含在perl脚本中,以便我可以编写与上述代码相当的工作perl。我不太熟悉VBA,不明白引擎盖下发生了什么事这么说?

1 个答案:

答案 0 :(得分:-1)

我认为1到1不可能......你必须重写代码看起来像下面的例子:

use feature 'say';
use Siebel::COM::App::DataControl;
use TryCatch;

my $app = Siebel::COM::App::DataControl->new(
      {
          user       => 'sadmin',
          password   => 'sadmin',
          host       => 'test',
          enterprise => 'SIEBEL',
          lang       => 'ENU',
          aom        => 'eClinicalObjMgr_enu'

      }
);

my $created_by = '0-1';
try {
    $app->login();

    my $bo = $app->get_bus_object('Account');
    my $bc = $bo->get_bus_comp('Account');

    $bc->activate_field('Location');
    $bc->activate_field('Extension Phone Number');

    $bc->clear_query();
    $bc->set_view_mode();

    $bc->set_search_spec( 'Created By', "='$created_by'" );
    $bc->query();

    if ( $bc->first_record() ) {
        do {
            my $val = $bc->get_field_value('Location');
            say $val;
        } while ( $bc->next_record() )
    } else {
        say 'Could not find the account';
    }
} catch {
    die 'Exception: ' . $app->get_last_error();
}

做魔术的是Siebel::COM perl模块。 如果您发布Excel脚本的示例,我可以帮助将其更改为Perl等效项。