I'm having difficulty with Spreadsheet::WriteExcel and formulas that use VLOOKUP
. The following test script populates a worksheet with some data and tries to create a VLOOKUP
formula. When I open the resulting Excel file, the formula results are displayed as #VALUE!
. If I manually edit any of the cells containing formulas (press F2 and then just ENTER without changing anything), I can get Excel to evaluate the formula properly. Any idea what going wrong?
For what it's worth, if I open the same file in OpenOffice, the formulas work fine.
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.
}
Version info:
- Excel 2007 SP2.
- Spreadsheet::WriteExcel: tried both 2.25 and 2.37.