在Windows和Linux上以Perl格式附加到Excel电子表格

在Windows和Linux上以Perl格式附加到Excel电子表格,windows,linux,perl,excel,append,Windows,Linux,Perl,Excel,Append,我想附加到Excel电子表格。Win32::OLE与此完美配合,但在Linux机器上不起作用。电子表格::WriteExcel似乎无法追加,但它可以在两种平台上工作。我发现了Excel::Writer::XLSX,但它报告说它没有电子表格那么多的功能 我还想创建超链接,因此单击某些文本将引导您进入Excel工作簿中的另一个工作表。这可能吗?在哪一个Excelwriter/etc上 所以有两个问题: 1在两个平台上工作时,我应该使用什么才能附加到电子表格?” 2是否可以创建指向其他工作表的超链接,

我想附加到Excel电子表格。Win32::OLE与此完美配合,但在Linux机器上不起作用。电子表格::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;

这是部分答案,可能是无效答案:


使用office的开放式XML SDK。任何*.xlsx文件实际上都是*.zip文件,其中包含许多描述文档的xml文件。使用sdk,您可以在电子表格和工作簿之间建立链接。不幸的是,它只能在Windows上工作…:

也许你想展示一些代码。为什么?我只想在两个平台上都添加一个文件,并创建超链接以链接到其他工作表。我现在不知道该用什么代码,甚至不知道这是否可行。我将添加代码来展示我使用win32::OLE做了什么,如果这对我有帮助的话?是的,它必须在Windows和Linux上工作。。。不过还是谢谢你。所以你不知道在电子表格::WriteExcel中还有其他方法可以创建指向其他工作表的超链接吗?对不起,我不知道。虽然我想知道您是否可以使用OpenOffice SDK来完成您需要实现的任务?它仍然使用相同的开放式Xml规范,您可以从此处下载该规范的架构: