#!/usr/bin/perl use strict; $|++; use Spreadsheet::ParseExcel; use Spreadsheet::WriteExcel; my %heading = ( bold => 1, pattern => 1, fg_color => 15, border => 1, align => 'center', ); my @filesToBeProcessed = <INC.*.xls>; my $file; my @arrayOfData; my $totalDayMinutes = 0; my $totalNightMinnites = 0; my $totalGSMMinutes = 0; for (my $x = 0; $x <= $#filesToBeProcessed; $x++) { my $oExcel = Spreadsheet::ParseExcel->new(); my $oBook = $oExcel->Parse($filesToBeProcessed[$x]); my $oWkS = $oBook->{Worksheet}[1]; my @data = getFieldData($oWkS); $data[0] =~ s/\'//gm; $arrayOfData[$x] = [ @data ]; $totalDayMinutes = $totalDayMinutes + $data[1]; $totalNightMinnites = $totalNightMinnites + $data[2]; $totalGSMMinutes = $totalGSMMinutes + $data[3]; } my $workbook = Spreadsheet::WriteExcel->new("summary.xls"); my $worksheet = $workbook->add_worksheet("Summary"); my $heading = $workbook->add_format(%heading); my $format = $workbook->add_format(); my @fields =("Date", "Day Minutes", "Night Minutes", "GSM"); for (my $x = 0; $x < @fields; $x++) { $worksheet->set_column(0, $x, 15); $worksheet->write(0, $x, $fields[$x], $heading); } $format->set_bold(); $format->set_color('black'); $format->set_align('center'); for (my $i = 0; $i <= $#arrayOfData; $i++) { for (my $j = 0; $j < $#{$arrayOfData[$i]}; $j++) { $worksheet->write(($i + 1), $j, $arrayOfData[$i][$j], $form +at); } } $worksheet->write(($#arrayOfData + 2), 1, $totalDayMinutes, $format); $worksheet->write(($#arrayOfData + 2), 2, $totalNightMinnites, $format +); $worksheet->write(($#arrayOfData + 2), 3, $totalGSMMinutes, $format); $workbook->close(); ###################### # Subroutines ###################### sub getFieldData { my ($workSheet) = $_[0]; my @array; for (my $x = 0, my $y = 0; $x <= $workSheet->{MaxRow}; $x++, $y++) { my $cell = $workSheet->{Cells}[$x][1]; $array[$y] = $cell->Value,if($cell); } return @array; }
Title edit by tye
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |