我正在尝试使用以下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值的内容。
答案 0 :(得分:0)
(为什么我在这里发帖后几秒钟总能找到答案?)
解决方案:我应该使用$charts_ws->ChartObjects ($i)->Chart
,我应该从索引1开始循环。