Excel-artige Tabellen bzw. Spreadsheets kann man in Perl/Tk mittels Tk::TableMatrix::Spreadsheet erzeugen. Das Widget kann mit halbwegs großen Datenmengen umgehen. Es funktioniert von Haus aus nicht exakt wie Excel und es gibt auch keine eingebaute VBA-Unterstützung, aber man kann das Verhalten der Tabelle mit ein paar bindings recht gut nachstellen.
#!perl
use strict;
use warnings;
use Tk;
use Tk::TableMatrix::Spreadsheet;
my $mw = Tk::MainWindow->new(-width => 380, -height => 400,);
$mw->packPropagate(0);
my %table = ();
my $t = $mw->Scrolled(
'Spreadsheet',
-cols => 4,
-rows => 500,
-width => 4,
-variable => \%table,
-selectmode => 'extended',
-titlerows => 1,
-titlecols => 1,
-bg => 'white',
-bg => 'white',
-scrollbars => 'se',
);
my $l = $t->Label(-text => 'text',);
$t->set('1,2', "Name");
for( my $c = 0; $c < 500; $c++ ) {
$t->set("$c,0", $c);
$t->set("$c,1", $c*100);
$t->set("$c,2", $c^17);
$t->set("$c,3", $c/5);
}
$t->pack(-fill => 'both', -expand => 1);
$mw->MainLoop();