0

我正在尝试使用以下 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

我无法破译0x800a03ecHRESULT 值是什么。

4

1 回答 1

0

(为什么我总是在我在这里发布问题后几秒钟找到答案?)

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

于 2012-05-30T13:00:49.023 回答