获取Excel工作表中嵌入的图表

时间:2012-05-30 12:16:11

标签: perl excel com ole

我正在尝试使用以下Perl代码对Excel工作表中的图表进行一些修改:

    $ex = Win32::OLE->new ('Excel.Application')
        or confess "could not instantiate Excel.Application: $!\n";

    my $workbook = $ex->Workbooks->Open ($file)
        or confess "failed to open $file: $!";

    my $charts_ws = $workbook->Worksheets ("Charts");
    my $charts_col = $charts_ws->ChartObjects;

    for (my $i = 0; $i != $charts_col->Count; ++$i)
    {
        my $chart = $charts_col->Item ($i); # XXX the problem is here
    }

    $workbook->Close;

XXX标记的行之前,所有内容似乎都有效。不幸的是,我收到以下错误:

Win32::OLE(0.1709) error 0x800a03ec
    in METHOD/PROPERTYGET "Item" at test.pl line 557

我无法破译关于0x800a03ec HRESULT值的内容。

1 个答案:

答案 0 :(得分:0)

(为什么我在这里发帖后几秒钟总能找到答案?)

解决方案:我应该使用$charts_ws->ChartObjects ($i)->Chart,我应该从索引1开始循环。