【问题标题】:Appending to Excel Spreadsheets in Perl on Windows AND Linux在 Windows 和 Linux 上的 Perl 中附加到 Excel 电子表格
【发布时间】:2011-08-29 03:48:16
【问题描述】:

我想追加到 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;

【问题讨论】:

  • 也许你想展示一些代码。
  • 为什么?我要做的就是附加到两个平台上的文件并创建超链接以链接到其他工作表。我不知道现在使用什么代码,甚至不知道它是否可能。我会添加代码来展示我使用 win32::OLE 所做的事情,如果这有助于我猜?

标签: windows linux perl excel append


【解决方案1】:

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

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

【讨论】:

  • 是的,它必须在 Windows 和 Linux 上工作......不过还是谢谢。所以你不知道说 Spreadsheet::WriteExcel 中的任何其他方法可以创建到其他工作表的超链接?
  • 对不起,我不是。虽然我想知道您是否可以使用 OpenOffice SDK 来完成您需要实现的目标?它仍然使用相同的 Open Xml 规范,您可以从这里下载它的架构:microsoft.com/downloads/en/…
猜你喜欢
  • 1970-01-01
  • 2015-10-15
  • 2019-08-11
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 2014-09-11
相关资源
最近更新 更多