PDA

Просмотр полной версии : OLE в Excel && Perl



Karamultuk
06.04.2004, 02:11
Привет.

Вопрос относящийся сразу к нескольким разделам данного форума. Вы уж не обижайтесь.
Наиль, ты как то мне подсказал, как работать с объектами OLE ПФМ Excel ;). Я все никак на perl'е не могу выполнить операцию "закрепления областей". Фрагмент кода привожу:



eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')};
die "Excel not installed" if $@;
unless (defined $ex) {
$ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
or die "Oops, cannot start Excel";
}
$ex->{SheetsInNewWorkbook} = 1;
$ex->{PrintTitleRows} = "\$1:\$1";
$ex->{PrintTitleColumns} = "";
$book = $ex->Workbooks->Add;
$sheet = $book->Worksheets(1);
$sheet->ActiveWindow->{FreezePanes} = 1;


в результате при попытке выполнить данный код вылетает ошибка, что мол нет такого метода. Я думаю, что ActiveWindow надо вызывать как то по другому. В Excel это выглядит так:


ActiveWindow.FreezePanes = True


Подскажи, в каком месте я ошибаюсь?
Спасибо.

Karamultuk
06.04.2004, 02:24
Виноват, не покопался в документации.
В ActivePerl есть отличный OLE-browser, там все описано
вот ответ на мой вопрос:


$sheet->Cells(2,1)->Select; - позиционирование области закрепления
$ex->ActiveWindow->{FreezePanes} = 1;