... my $sheet = []; foreach my $row_index ($source_sheet->row_range) { my $row = []; foreach my $col_index ($source_sheet->col_range) { my $source_cell = $source_sheet->{Cells}[$row_index][$col_index]; if ($source_cell) { #print "( $row_index , $col_index ) =>", $source_cell->Value, ","; push @$row, $source_cell->Value; } } push @$sheet, $row; } csv( in => $sheet, out => 'file.csv' );