#!/usr/bin/perl use 5.010; use strict; use warnings; use Spreadsheet::WriteExcel; my $WriteWorkbook = Spreadsheet::WriteExcel->new('Write.xls'); my $WriteWorksheet = $WriteWorkbook->add_worksheet('Data'); my $formula = $WriteWorksheet->store_formula('=1-(F1/E1)'); my $f_change = $WriteWorkbook->add_format(); $f_change->set_num_format('0.00%'); for my $row ( 1..4 ) { for my $col ( 4..5 ) { $WriteWorksheet->write($row, $col, rand()); } $WriteWorksheet->repeat_formula($row, 13, $formula, $f_change, 'F1','F'.($row+1), 'E1', 'E'.($row+1)); } #### #!/usr/bin/perl use 5.010; use strict; use warnings; use Spreadsheet::ParseExcel; my $parser = Spreadsheet::ParseExcel->new(); my $ReadWorkbook = $parser->parse('write.xls'); for my $ReadWorksheet($ReadWorkbook->Worksheet('Data')){ my ($row_min, $row_max) = $ReadWorksheet->row_range(); my ($col_min, $col_max) = $ReadWorksheet->col_range(); for my $row($row_min..$row_max){ for my $col ( $col_min..$col_max){ my $cell = $ReadWorksheet->get_cell($row, $col); print "$row,$col,",$cell->value(),"\n" if defined($cell); } } }