Ich habe Schwierigkeiten mit Tabellenkalkulation::WriteExcel und Formeln, die VLOOKUP
. Das folgende Testskript füllt ein Arbeitsblatt mit einigen Daten und versucht, eine VLOOKUP
Formel. Wenn ich die resultierende Excel-Datei öffne, werden die Ergebnisse der Formel wie folgt angezeigt #VALUE!
. Wenn ich eine der Zellen, die Formeln enthalten, manuell bearbeite (F2 drücken und dann einfach ENTER, ohne etwas zu ändern), kann ich Excel dazu bringen, die Formel richtig auszuwerten. Hat jemand eine Idee, was falsch läuft?
Wenn ich dieselbe Datei jedoch in OpenOffice öffne, funktionieren die Formeln einwandfrei.
use strict;
use warnings;
use Spreadsheet::WriteExcel;
my $wb = Spreadsheet::WriteExcel->new('foo.xls');
my $ws = $wb->add_worksheet;
for my $r (0 .. 9){
for my $c (0 .. 4){
$ws->write($r, $c, $r * 10 + $c);
}
$ws->write($r, 10, $r * 10);
my $formula = sprintf('=VLOOKUP(K%s, A1:B10, 2, FALSE)', $r + 1);
$ws->write( $r, 11, $formula );
# $ws->write_formula( $r, 11, $formula ); # Does not help either.
}
Informationen zur Version:
- Excel 2007 SP2.
- Spreadsheet::WriteExcel: hat sowohl 2.25 als auch 2.37 ausprobiert.