Я хочу добавить в электронную таблицу 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;