.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "Excel::Template::Plus 3pm"
.TH Excel::Template::Plus 3pm "2012-05-06" "perl v5.14.2" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Excel::Template::Plus \- An extension to the Excel::Template module
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& use Excel::Template::Plus;
\&
\& my $template = Excel::Template::Plus\->new(
\& engine => \*(AqTT\*(Aq,
\& template => \*(Aqgreeting.tmpl\*(Aq,
\& config => { INCLUDE => [ \*(Aq/templates\*(Aq ] },
\& params => { greeting => \*(AqHello\*(Aq }
\& );
\&
\& $template\->param(location => \*(AqWorld\*(Aq);
\&
\& $template\->write_file(\*(Aqgreeting.xls\*(Aq);
.Ve
.SH "DISCLAIMER"
.IX Header "DISCLAIMER"
This is the very first release of this module, it is an idea that I and
Rob Kinyon (the author of Excel::Template) had discussed many times, but
never got around to doing. This is the first attempt at bring this to
reality, it may change \fBradically\fR as it evolves, so be warned.
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This module is an extension of the Excel::Template module, which allows
the user to use various \*(L"engines\*(R" from which you can create Excel files
through Excel::Template.
.PP
The idea is to use the existing (and very solid) excel file generation
code in Excel::Template, but to extend its more templatey bits with more
powerful options.
.PP
The only engine currently provided is the Template Toolkit engine, which
replaces Excel::Template's built in template features (the \s-1LOOP\s0, and \s-1IF\s0
constructs) with the full power of \s-1TT\s0. This is similar to the module
Excel::Template::TT, but expands on that even further to try and create
a more extensive system.
.PP
You can use this module to create Excel::Template\-compatible \s-1XML\s0 files
using one of the supported engines. For example, with the \s-1TT\s0 engine you
could create a Excel::Template \s-1XML\s0 file like:
.PP
.Vb 10
\&
\&
\& [% my_cols = get_list_of_columns %]
\&
\& [% FOR col = my_cols %]
\& [% col %] |
\& [% END %]
\&
\& [% FOR my_row = get_list_of_objects %]
\&
\& [% FOR col = my_cols %]
\& [% my_row.$col %] |
\& [% END %]
\&
\& [% END %]
\&
\&
.Ve
.PP
Your \s-1TT\s0 template thus creates a \s-1XML\s0 file suitable to handing over to
Excel::Template for processing. Excel::Template::Plus simplifies
the template-creation and handing-over process.
.PP
Future engine/plans include:
.IP "Pure Perl" 4
.IX Item "Pure Perl"
This would allow you to write you Excel::Template files using Perl itself
which would then output the \s-1XML\s0 for Excel::Template to consume. This would
be modeled after the recently released Template::Declare module perhaps.
.IP "\s-1TT\s0 Plugins/Macros/Wrappers" 4
.IX Item "TT Plugins/Macros/Wrappers"
This is basically anything which will make the \s-1TT\s0 engine easier to write
templates for. I have experimented with some of these things, but I was not
happy with any of them enough to release them yet.
.IP "HTML::Template" 4
.IX Item "HTML::Template"
Excel::Template's templating features are based on HTML::Template, but the
HTML::Template plugins and other goodies are not compatible. This engine
would bring those things to Excel::Template.
.SH "METHODS"
.IX Header "METHODS"
.IP "\fBnew (%options)\fR" 4
.IX Item "new (%options)"
This method basically serves as a factory for creating new engine instances
(for which Excel::Template::Plus::TT is the only one currently). The only
parameter that it requires is \fIengine\fR, all other parameters are passed
onto the engine's constructor (see the individual docs for more details on
what is required).
.IP "\fBmeta\fR" 4
.IX Item "meta"
Access to the metaclass.
.SH "BUGS"
.IX Header "BUGS"
All complex software has bugs lurking in it, and this module is no
exception. If you find a bug please either email me, or add the bug
to cpan-RT.
.SH "ACKNOWLEDGEMENTS"
.IX Header "ACKNOWLEDGEMENTS"
.IP "This module came out of several discussions I had with Rob Kinyon." 4
.IX Item "This module came out of several discussions I had with Rob Kinyon."
.SH "AUTHOR"
.IX Header "AUTHOR"
Stevan Little
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
Copyright 2007\-2010 by Infinity Interactive, Inc.
.PP
.PP
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.