4 Stimmen

Wie bringe ich Perl's Spreadsheet::WriteExcel dazu, Formeln mit VLOOKUP zu erstellen?

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X