NAME¶
Excel::Template::Plus - An extension to the Excel::Template module
SYNOPSIS¶
use Excel::Template::Plus;
my $template = Excel::Template::Plus->new(
engine => 'TT',
template => 'greeting.tmpl',
config => { INCLUDE => [ '/templates' ] },
params => { greeting => 'Hello' }
);
$template->param(location => 'World');
$template->write_file('greeting.xls');
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
radically as it evolves, so be warned.
DESCRIPTION¶
This module is an extension of the Excel::Template module, which allows the user
to use various "engines" from which you can create Excel files
through Excel::Template.
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.
The only engine currently provided is the Template Toolkit engine, which
replaces Excel::Template's built in template features (the LOOP, and IF
constructs) with the full power of TT. This is similar to the module
Excel::Template::TT, but expands on that even further to try and create a more
extensive system.
You can use this module to create Excel::Template-compatible XML files using one
of the supported engines. For example, with the TT engine you could create a
Excel::Template XML file like:
<workbook>
<worksheet name="[% worksheet_name %]">
[% my_cols = get_list_of_columns %]
<row>
[% FOR col = my_cols %]
<bold><cell>[% col %]</cell></bold>
[% END %]
</row>
[% FOR my_row = get_list_of_objects %]
<row>
[% FOR col = my_cols %]
<cell>[% my_row.$col %]</cell>
[% END %]
</row>
[% END %]
</worksheet>
</workbook>
Your TT template thus creates a XML file suitable to handing over to
Excel::Template for processing. Excel::Template::Plus simplifies the
template-creation and handing-over process.
Future engine/plans include:
- Pure Perl
- This would allow you to write you Excel::Template files
using Perl itself which would then output the XML for Excel::Template to
consume. This would be modeled after the recently released
Template::Declare module perhaps.
- TT Plugins/Macros/Wrappers
- This is basically anything which will make the TT 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.
- 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.
METHODS¶
- 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 engine, all
other parameters are passed onto the engine's constructor (see the
individual docs for more details on what is required).
- meta
- Access to the metaclass.
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.
ACKNOWLEDGEMENTS¶
- This module came out of several discussions I had with Rob
Kinyon.
AUTHOR¶
Stevan Little <stevan@iinteractive.com>
COPYRIGHT AND LICENSE¶
Copyright 2007-2010 by Infinity Interactive, Inc.
<
http://www.iinteractive.com>
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.