Karamultuk » 06 апр 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 это выглядит так:
Подскажи, в каком месте я ошибаюсь?
Спасибо.
Привет.
Вопрос относящийся сразу к нескольким разделам данного форума. Вы уж не обижайтесь.
Наиль, ты как то мне подсказал, как работать с объектами OLE ПФМ Excel ;) . Я все никак на perl'е не могу выполнить операцию "закрепления областей". Фрагмент кода привожу:
[code]
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;
[/code]
в результате при попытке выполнить данный код вылетает ошибка, что мол нет такого метода. Я думаю, что ActiveWindow надо вызывать как то по другому. В Excel это выглядит так:
[code]
ActiveWindow.FreezePanes = True
[/code]
Подскажи, в каком месте я ошибаюсь?
Спасибо.