2011-01-21 4 views
2

У меня установлен Strawberry Perl и PPM. Я не чужую установку модулей вручную из CPAN, но в последнее время пришел к одной из тех ситуаций, когда для модуля требовалась одна зависимость и требовалась эта зависимость. Двадцать ...Perl, ppm, и пытается загрузить зависимые модули

Итак, я решил дать PPM вихрь (потому что это автоматически устанавливает зависимости, правильно?), и я изначально думал, что это работает как Ruby Gems. Я загрузил его и напечатал:

ppm> install OLE::Storage_Lite 

из этого tutorial.

Затем я столкнулся с проблемой: «Не удалось найти файл PPD».

Итак, я последовал за этим tutorial, который проведет вас через подключение к репозиторию, и он все еще не смог найти файл PPD.

Мой вопрос: может ли кто-нибудь помочь мне загрузить модуль Perl, чтобы я мог читать и писать из файлов Excel !?

Решение: Моя проблема оказалась прокси-сервером на работе, что не позволило мне загружать пакеты через PPM.

+0

Клиент cpan автоматически установит для вас зависимости; вам просто нужно установить правильное значение конфигурации. – Ether

+0

Эфир: Strawberry имеет этот параметр по умолчанию, а в других дисках он настроен на «ask». –

ответ

3

Две вещи:

  1. CPAN может установить зависимости тоже! :) просто сделайте cpan install My::Module в командной строке, чтобы установить ваш модуль и его зависимости.
  2. Вместо этого использовать Win32::OLE.

Win32::OLE - стандартный модуль для взаимодействия с объектами COM и OLE в окнах, и он отлично работает. Он уже включен в Strawberry Perl, и он работает хорошо! Вам просто нужно посмотреть документы, касающиеся Perl и «OLE Automation». Это будет выглядеть примерно так:

use strict; 
use warnings; 
use Win32::OLE; 
use Win32::OLE::Const 'Microsoft Excel'; # brin in Excel constants 

my $excel = Win32::OLE->new('Excel.Application') or die "oops\n"; 

В самом деле, если вы проверить Win32::OLE документов на CPAN, вы увидите, что у них есть несколько примеров прямо о том, как получить Excel автоматизации работы.

После этого быстрый поиск «Excel OLE Automation» приведет к появлению большого количества учебников, в которых будут показаны все методы, необходимые для вызова и причуды Excel. Но после этого, это довольно прямолинейно! Некоторые примеры:

my $sheet = $excel->Worksheets(1); #Gets the first worksheet, 1 indexed 
$sheet->Cells($row, $col); # do something to a cell 
$sheet->Columns("A:D"); # do something to some columns 
$sheet->Rows($row_number); # do something to a row 

Очевидно, что намного больше (API excel довольно обширен), но это должно начаться.

+1

Это должно быть очевидно, но с использованием [OLE] (http://en.wikipedia.org/wiki/Object_Linking_and_Embedding) требуется установить Excel. Это вряд ли будет проблемой, если вы разрабатываете Windows и для Windows. Электронная таблица :: WriteExcel позволяет создавать электронную таблицу Excel без установки Excel - даже с других платформ. –

+0

Ах, не совсем очевидно, для меня. Облом. Лично я бы колебался, чтобы писать документы excel за пределами превосходства по причинам несовместимости. Чтение и запись в Excel - это боль по многим причинам ... Совместимость Lotus 1-2-3 - это лишь один из них. :) –

+0

Привет, ребята.Моя проблема оказалась прокси-сервером на работе, которая не позволила бы мне загружать пакеты через PPM. Я даже не мог использовать wget. Тем не менее, я собираюсь отметить это решение как правильное, потому что оно очень проницательно. – Melissa

Смежные вопросы