2011-05-19 50 views
0

我想附加到Excel電子表格。 Win32 :: OLE完全適用於此,但它在Linux機器上無法使用。 Spreadsheet :: WriteExcel似乎無法追加,但它可以在兩個平臺上工作。我發現了關於Excel :: Writer :: XLSX,但它報告說它沒有電子表格那樣多的功能...在Windows和Linux上添加到Perl Excel電子表格

我還想創建超鏈接,所以點擊一些文本會引導你到另一個文本Excel工作簿中的工作表。這是可能的,並在哪一個(Excelwriter /等)?

所以有兩個問題: 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; 
+0

也許你想展示一些代碼 – Fosco 2011-05-19 19:22:18

+0

爲什麼?我想要做的就是在兩個平臺上追加到一個文件並創建鏈接到其他工作表的超鏈接。不知道現在使用什麼代碼,甚至不知道它是否可能。我會添加代碼,以顯示我使用win32 :: OLE做了什麼,如果這有助於我猜測的話? – petranaya 2011-05-19 19:36:25

回答

0

這是局部的,也許一個非有效的答案:

使用的Office開放式XML SDK 。任何* .xlsx文件實際上都是* .zip文件,其中包含許多描述文檔的xml文件。使用sdk,您可以在電子表格和工作簿之間建立鏈接。不幸的是,它僅適用於Windows ... :(

+0

是的,它必須工作Windows和Linux ...儘管如此感謝所以你不知道任何其他方法說電子表格:: WriteExcel,可以創建超鏈接到其他工作表? – petranaya 2011-05-19 19:33:14

+0

對不起,我不是。雖然我想知道如果你可以使用OpenOffice SDK來完成你需要實現的功能?它仍然使用相同的Open Xml規範,你可以從這裏下載它的模式:http://www.microsoft.com/downloads/en/details.aspx? FAMILYID = 15805380-F2C0-4B80-9AD1-2CB0C3 00AEF9 – bleepzter 2011-05-19 19:35:46