/usr/share/perl5/Excel/Template/Container/Worksheet.pm is in libexcel-template-perl 0.34-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | package Excel::Template::Container::Worksheet;
use strict;
BEGIN {
use vars qw(@ISA);
@ISA = qw(Excel::Template::Container);
use Excel::Template::Container;
}
sub exit_scope { $_[1]->active_worksheet(undef) }
sub render {
my $self = shift;
my ($context) = @_;
my $worksheet = $context->new_worksheet($self);
my $password = $context->get( $self, 'PROTECT' );
if ( defined $password ) {
$worksheet->protect($password);
}
$worksheet->keep_leading_zeros(1)
if $context->mark('keep_leading_zeros');
if ( $context->get( $self, 'LANDSCAPE' ) && !$self->{PORTRAIT} ) {
$worksheet->set_landscape;
} elsif ( $context->get( $self, 'PORTRAIT' ) ) {
$worksheet->set_portrait;
}
my $hide_gridlines = $context->get( $self, 'HIDE_GRIDLINES');
if ( defined $hide_gridlines ) {
$worksheet->hide_gridlines( $hide_gridlines );
}
my $autofilter = $context->get( $self, "AUTOFILTER");
if ( defined $autofilter ) {
if ($autofilter =~ /^\D/) {
$worksheet->autofilter($autofilter);
}else{
$autofilter =~ s/ //g;
my ($row1, $col1, $row2, $col2) = split(',',$autofilter);
$worksheet->autofilter($row1, $col1, $row2, $col2);
}
}
return $self->SUPER::render($context);
}
1;
__END__
=head1 NAME
Excel::Template::Container::Worksheet - Excel::Template::Container::Worksheet
=head1 PURPOSE
To provide a new worksheet.
=head1 NODE NAME
WORKSHEET
=head1 INHERITANCE
Excel::Template::Container
=head1 ATTRIBUTES
=over 4
=item * NAME
This is the name of the worksheet to be added.
=item * PROTECT
If the attribute exists, it will mark the worksheet as being protected. Whatever
value is set will be used as the password.
This activates the HIDDEN and LOCKED nodes.
=item * KEEP_LEADING_ZEROS
This will change the behavior of the worksheet to preserve leading zeros.
=item * HIDE_GRIDLINE
his method is used to hide the gridlines on the screen and printed page.
Gridlines are the lines that divide the cells on a worksheet. Screen and printed gridlines are
turned on by default in an Excel worksheet. If you have defined your own cell
borders you may wish to hide the default gridlines.
$worksheet->hide_gridlines();
The following values of $option are valid:
0 : Don't hide gridlines
1 : Hide printed gridlines only
2 : Hide screen and printed gridlines
If you don't supply an argument or use undef the default option is 1, i.e. only the printed gridlines are hidden.
=item * LANDSCAPE
This will set the worksheet's orientation to landscape.
=item * PORTRAIT
This will set the worksheet's orientation to portrait.
While this is the default, it's useful to override the default at times. For
example, in the following situation:
<workbook landscape="1">
<worksheet>
...
</worksheet
<worksheet portrait="1">
...
</worksheet
<worksheet>
...
</worksheet
</workbook>
In that example, the first and third worksheets will be landscape (inheriting
it from the workbook node), but the second worksheet will be portrait.
=item * AUTOFILTER
With these attribute, you can add the autofilter to a worksheet. An autofilter is a
way of adding drop down lists to the headers of a 2D range of worksheet data.
This is turn allow users to filter the data based on simple criteria so that
some data is shown and some is hidden.
Example to add an autofilter to a worksheet:
<workbook>
<worksheet autofilter='A1:D11' />
<worksheet autofilter='0, 0, 10, 3' />
</workbook>
=back
=head1 CHILDREN
None
=head1 EFFECTS
None
=head1 DEPENDENCIES
None
=head1 USAGE
<worksheet name="My Taxes">
... Children here
</worksheet>
In the above example, the children will be executed in the context of the
"My Taxes" worksheet.
=head1 AUTHOR
Rob Kinyon (rob.kinyon@gmail.com)
=head1 SEE ALSO
ROW, CELL, FORMULA
=cut
|