File Coverage

blib/lib/Data/Tabular/Dumper/Excel.pm
Criterion Covered Total %
statement 38 38 100.0
branch 2 2 100.0
condition 2 3 66.6
subroutine 9 9 100.0
pod 0 6 0.0
total 51 58 87.9


line stmt bran cond sub pod time code
1             # $Id: Excel.pm 456 2009-04-15 12:20:59Z fil $
2             package Data::Tabular::Dumper::Excel;
3 4     4   21 use strict;
  4         9  
  4         682  
4              
5 4     4   24018 use Spreadsheet::WriteExcel;
  4         557189  
  4         2234  
6              
7             ###########################################################
8             sub open
9             {
10 10     10 0 24 my($package, $param)=@_;
11 10         23 my($file)=@$param;
12 10         75 my $book=Spreadsheet::WriteExcel->new($file);
13              
14 10         61993 my $header=$book->addformat();
15 10         470 $header->set_bold();
16 10         124 my $default=$book->addformat();
17              
18 10         556 return bless {book=>$book, row=>0, header=>$header,
19             empty=>1,
20             default=>$default}, $package;
21             }
22              
23             ###########################################################
24             sub close
25             {
26 20     20 0 32 my($self)=@_;
27 20         44 delete $self->{sheet};
28 20         37 delete $self->{header};
29 20 100       92 if( $self->{book} ) {
30 10         58 $self->{book}->close();
31 10         61239 delete $self->{book};
32             }
33             }
34              
35              
36             ###########################################################
37             sub page_start
38             {
39 10     10 0 14 my( $self, $name ) = @_;
40              
41 10         15 $self->{row} = 0;
42 10         44 $self->{sheet} = $self->{book}->add_worksheet( $name );
43              
44 10         3960 return;
45             }
46              
47             ###########################################################
48             sub page_end
49             {
50 10     10 0 16 my( $self, $name ) = @_;
51              
52 10         18 delete $self->{sheet};
53 10         17 $self->{row} = 0;
54 10         20 return;
55             }
56              
57              
58             ###########################################################
59             sub __write
60             {
61 42     42   60 my($self, $data, $format)=@_;
62              
63 42   66     155 $self->{sheet} ||= $self->{book}->add_worksheet();
64              
65 42         2595 my $row=$self->{row}++;
66 42         56 my $col=0;
67 42         67 foreach my $d (@$data) {
68 165         493 $self->{sheet}->write($row, $col, $d, $format);
69 165         13346 $col++;
70             }
71             }
72              
73             ###########################################################
74             sub fields
75             {
76 9     9 0 13 my($self, $fields)=@_;
77 9         34 $self->__write($fields, $self->{header});
78             }
79              
80              
81             ###########################################################
82             sub write
83             {
84 33     33 0 48 my($self, $data)=@_;
85 33         81 $self->__write($data, $self->{default});
86             }
87              
88             1;
89              
90             __END__