OLE в Excel && Perl

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Karamultuk
Сообщения: 5
Зарегистрирован: 24 мар 2004, 15:21
Откуда: Калуга
Контактная информация:

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 это выглядит так:

Код: Выделить всё

ActiveWindow.FreezePanes = True
Подскажи, в каком месте я ошибаюсь?
Спасибо.
Karamultuk
Сообщения: 5
Зарегистрирован: 24 мар 2004, 15:21
Откуда: Калуга
Контактная информация:

06 апр 2004, 02:24

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

Код: Выделить всё

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