Wednesday, April 01, 2009

Excel-Dateien erstellen

Perl kann so einfach sein ;-) Wie bekommt man eine .txt-Datei in eine .xls umgewandelt? In der .txt stehen Dateinamen (einer pro Zeile) und in der Excel-Datei soll für jeden Anfangsbuchstaben eine Tabelle erstellt werden und die jeweiligen Dateinamen eingetragen werden. Diese Fragestellung tauchte in einem Forum auf und das ist eine gute Gelegenheit mal wieder mein Modul Spreadsheet::SimpleExcel zu verwenden:

#!/usr/bin/perl

use strict;
use warnings;
use Spreadsheet::SimpleExcel;

my %hash;
open my $fh, '<', 'dateien.txt' or die $!;
while( my $line = <$fh> ){
chomp $line;
my $initial = substr $line, 0, 1;
push @{ $hash{lc $initial} }, [$line];
}
close $fh;

my $xls = Spreadsheet::SimpleExcel->new;

for my $key ( sort keys %hash ){
$xls->add_worksheet( $key, { -data => $hash{$key} } );
}

$xls->output_to_file( 'test.xls' );
Einfach, oder? Spreadsheet::SimpleExcel unterstützt zwar nicht alles von Spreadsheet::WriteExcel, für meine Belange war das aber bisher mehr als ausreichend.

No comments: