Добавление в таблицы Excel в Perl для Windows И Linux - PullRequest
0 голосов
/ 19 мая 2011

Я хочу добавить в электронную таблицу Excel. Win32 :: OLE прекрасно с этим работает, но не работает на машинах Linux. Spreadsheet :: WriteExcel, кажется, не может добавить, хотя он может работать на обеих платформах. Я узнал об Excel :: Writer :: XLSX, но он сообщает, что у него не так много функций, как у электронной таблицы ...

Я также хотел бы создать гиперссылки, поэтому щелчок по некоторому тексту приведет вас к другому листу в книге Excel. Возможно ли это и на каком (Excelwriter / etc)?

Итак, два вопроса: 1) Что мне следует использовать, чтобы я мог добавлять таблицы при работе на обеих платформах? 2) Можно ли создавать гиперссылки, которые ведут на другие листы и на каком из них используются?

Вот код, который я использовал для Win32 :: OLE, добавившего новый лист:

use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
print "Opening Excel...\n";

$Excel = Win32::OLE->GetActiveObject('Excel.Application')
   || Win32::OLE->new('Excel.Application', 'Quit');

#appending to existing excel file
my $book = $Excel->Workbooks->Open($full_name) || die "Error: Could not open Excel workbook";

#putting this sheet at the beginning
my $sheet = $book->Worksheets->Add({Before => $book->Worksheets(1)}) or die "Error: " . Win32::OLE->LastError;

1 Ответ

0 голосов
/ 19 мая 2011

Это частичный и, возможно, недействительный ответ:

Используйте открытый XML SDK для офиса.Любой из файлов * .xlsx на самом деле является * .zip-файлами со многими XML-файлами внутри, которые описывают документ.Используя SDK, вы можете создавать ссылки между электронными таблицами и рабочими книгами.К сожалению, это работает только на Windows ...: (

...