diff options
Diffstat (limited to 'lib/Spreadsheet/Template/Generator/Parser/XLSX.pm')
-rw-r--r-- | lib/Spreadsheet/Template/Generator/Parser/XLSX.pm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm b/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm index 904c04b..cf7c997 100644 --- a/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm +++ b/lib/Spreadsheet/Template/Generator/Parser/XLSX.pm @@ -1,6 +1,7 @@ package Spreadsheet::Template::Generator::Parser::XLSX; use Moose; +use POSIX; use Spreadsheet::XLSX; use XML::Entities; use XML::Twig; @@ -48,6 +49,16 @@ sub make_excel { $sheet->{ColWidth} = [ map { defined $_ ? 0+$_ : 0+$default_column_width } @column_widths ]; + + for my $formula ($root->find_nodes('//f')) { + my $cell_id = $formula->parent->att('r'); + my ($col, $row) = $cell_id =~ /([A-Z]+)([0-9]+)/; + $col =~ tr/A-Z/0-9A-P/; + $col = POSIX::strtol($col, 26); + $row = $row - 1; + my $cell = $sheet->get_cell($row, $col); + $cell->{Formula} = "=" . $formula->text; + } } return $excel; |