If it looks like the code I posted for you yesterday, that's what I started from, since I don't have SS:WE's perldoc handy here.
Hope this helps...#!/usr/bin/perl -w use strict; use Spreadsheet::WriteExcel; # don't need this here, but might in real script to get cell addresses #use Spreadsheet::WriteExcel::Utility; my $workbook=Spreadsheet::WriteExcel->new("test-counts.xls"); my $files_worksheet=$workbook->addworksheet("Files"); $files_worksheet->write(0,0,"Filename"); $files_worksheet->write(0,1,"ErrorType"); my %errorCodes; my %errorCodesByFile; my ($row, $col); # let's assume there's an input file, with data like # one.cxx 588 # one.cxx 588 # ... open(INFILE,"<errorList") or die "Can't open errorList, error $!"; $row=1; while(<INFILE>) { my ($file, $err)=split; $files_worksheet->write($row,0,$file); $files_worksheet->write($row,1,$err); # we need the list of ALL the errors, to get column headings $errorCodes{$err}++; # we need to COUNT how often each error occurs in each file $errorCodesByFile{$file}->{$err}++; ++$row; } close(INFILE); my $summ_worksheet=$workbook->addworksheet("Summary"); $summ_worksheet->write(0,0,"fileName"); $summ_worksheet->write(0,1,"Error"); my @sortedCodes = sort keys %errorCodes; $col=2; foreach my $errCode(@sortedCodes) { $summ_worksheet->write(0,$col++,$errCode); } $row=1; foreach my $filename(sort keys %errorCodesByFile) { $summ_worksheet->write($row,0,$fileName); $col=2; foreach my $errCode(@sortedCodes) { # set to blank if value 0 or not defined my $count=$errorCodesByFile{$file}->{$errCode} || ''; $summ_worksheet->write($row,$col++,$count); } ++$row; }
In reply to Re: WriteExcel
by RMGir
in thread WriteExcel
by amoura
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |