4 use lib "__INSTALLDIR__/lib";
8 use Spreadsheet::WriteExcel;
9 use POSIX qw/strftime/;
11 my $xls_file = '/tmp/report.xls';
13 my $workbook = Spreadsheet::WriteExcel->new($xls_file) || die "can't write to $xls_file: $!";
44 =X##/T##,sizeExistRatio
47 my $date_format = $workbook->add_format(num_format => 'yyyy-mm-dd hh:mm:ss');
48 my $duration_format = $workbook->add_format(num_format => 'hh:mm:ss');
49 my $header_format = $workbook->add_format(color => 'gray');
50 my $pcnt_format = $workbook->add_format(num_format => '0.0%');
51 my $size_format = $workbook->add_format(num_format => '#0');
54 duration => $duration_format,
55 sizeNewRatio => $pcnt_format,
56 sizeExistRatio => $pcnt_format,
58 sizeNew => $size_format,
59 sizeExist => $size_format,
60 sizeNewComp => $size_format,
61 sizeExistComp => $size_format,
64 my $bpc = BackupPC::Lib->new || die;
65 my %Conf = $bpc->Conf();
66 my $TopDir = $bpc->TopDir();
68 my $hosts = $bpc->HostInfoRead();
70 foreach my $host_key (sort keys %{$hosts}) {
72 my $hostname = $hosts->{$host_key}->{'host'} || die "can't find host for $host_key";
76 my $worksheet = $workbook->add_worksheet($hostname);
78 # get backups for a host
79 my @backups = $bpc->BackupInfoRead($hostname);
80 print scalar @backups, " increments\n";
85 foreach my $c (@cols) {
86 if ($c =~ m/^=.*,(.+)/) {
87 $worksheet->write($row, $i++, $1, $header_format);
89 $worksheet->write($row, $i++, $c, $header_format);
94 foreach my $backup (@backups) {
95 for (my $i = 0; $i <= $#cols; $i++) {
97 if ($col =~ m/Time/) {
98 $worksheet->write_date_time($row, $i,
99 strftime("%Y-%m-%dT%H:%M:%S", localtime( $backup->{ $cols[$i] }) ),
102 } elsif ($col =~ m/(=[^,]+),*(.*)/) {
103 my ($f,$n) = ($1,$2);
104 $f =~ s/##/($row+1)/ge;
105 $worksheet->write($row, $i, $f, $formats->{$n});
107 $worksheet->write($row, $i, $backup->{$col}, $formats->{$col});
118 print "Created $xls_file\n";