
App::ZofCMS::Plugin::DataToExcel - ZofCMS plugin to output data as an Excel file

plugins => [
qw/DataToExcel/,
],
plug_data_to_excel => {
data => [
[ qw/Foo Bar Baz/ ],
[ qw/Foo1 Bar1 Baz1/ ],
[ qw/Foo2 Bar2 Baz2/ ],
],
# this argument is optional; by default not specified
options => {
text_wrap => 1,
calc_column_widths => 1,
width_multiplier => 1,
center_first_row => 1,
},
# arguments below are optional; defaults are shown
trigger => 1,
filename => 'ExcelData.xls',
no_exit => 0,
},

The module is a plugin for App::ZofCMS that provides means to easily export an arrayref of arrayrefs (your data) as an Excel file presented to the user.
This documentation assumes you've read App::ZofCMS, App::ZofCMS::Config and App::ZofCMS::Template. Familarity with Spreadsheet::DataToExcel would be helpful.

pluginsplugins => [ qw/DataToExcel/ ],
Mandatory. You need to include the plugin in the list of plugins to execute.
plug_data_to_excel plug_data_to_excel => {
data => [
[ qw/Foo Bar Baz/ ],
[ qw/Foo1 Bar1 Baz1/ ],
[ qw/Foo2 Bar2 Baz2/ ],
],
# this argument is optional; by default not specified
options => {
text_wrap => 1,
calc_column_widths => 1,
width_multiplier => 1,
center_first_row => 1,
},
# arguments below are optional; defaults are shown
trigger => 1,
filename => 'ExcelData.xls',
no_exit => 0,
},
# or
plug_data_to_excel => sub {
my ( $t, $q, $config ) = @_;
return $hashref_to_assign_to_this_key_instead_of_subref;
},
Mandatory. Takes either a hashref or a subref as a value. If subref is specified, its return value will be assigned to plug_data_to_excel as if it were already there. If sub returns an undef or an empty list, then plugin will stop further processing. The @_ of the subref will contain $t, $q, and $config (in that order), where $t is ZofCMS Template hashref, $q is query parameter hashref, and $config is App::ZofCMS::Config object. Possible keys/values for the hashref are as follows:
data plug_data_to_excel => {
data => [
[ qw/Foo Bar Baz/ ],
[ qw/Foo1 Bar1 Baz1/ ],
[ qw/Foo2 Bar2 Baz2/ ],
],
...
plug_data_to_excel => {
data => sub {
my ( $t, $q, $config ) = @_;
return $arrayref_to_assign_to_the_key_instead_of_this_subref;
},
...
Mandatory. If not specified, plugin will not execute. Takes an arrayref or a subref as a value. If a subref is specified, it must return either an undef or an empty list, in which case the plugin will not run, or an arrayref that will be assigned to data as if it were there instead of the subref.
If subref is specified, the @_ of the subref will contain $t, $q, and $config (in that order), where $t is ZofCMS Template hashref, $q is query parameter hashref, and $config is App::ZofCMS::Config object.
The arrayref must be in the same format as the second argument of Spreadsheet::DataToExcel's dump() method.
options plug_data_to_excel => {
options => {
text_wrap => 1,
calc_column_widths => 1,
width_multiplier => 1,
center_first_row => 1,
},
...
Optional. Takes a hashref of arguments that specify how to format the Excel file. See the third argument for Spreadsheet::DataToExcel's dump()'s method for details. By default is not specified
trigger plug_data_to_excel => {
trigger => 1,
...
plug_data_to_excel => {
trigger => sub {
my ( $t, $q, $config ) = @_;
return $actual_value_for_trigger;
},
...
Optional. Takes either true or false values, or a subref that returns either true or false values. Plugin will run only if trigger is set to a true value. If set to a subref, the @_ of the subref will contain $t, $q, and $config (in that order), where $t is ZofCMS Template hashref, $q is query parameter hashref, and $config is App::ZofCMS::Config object. Defaults to: 1
filename plug_data_to_excel => {
filename => 'ExcelData.xls',
...
Optional. Takes a string as a value that specifies the filename that the browser will propose to the user (when saving your Excel file). Defaults to: ExcelData.xls
no_exit plug_data_to_excel => {
no_exit => 0,
...
Optional. Takes either true or false values. When plugin finishes outputting the Excel file to the user, it will call exit(), unless no_exit is set to a true value. Should that be the case, it is your responsibility to call exit() at a later time; although, OpenOffice didn't seem to mind extraneous HTML code added to the Excel file. Defaults to: 0

plug_data_to_excel_error <tmpl_if name='plug_data_to_excel_error'>
<tmpl_var escape='html' name='plug_data_to_excel_error'>
</tmpl_if>
Should an error occur (e.g. when you give the plugin invalid data argument), the plugin will place the description of the error into plug_data_to_excel_error key of {t} ZofCMS Template special key.

The plugin requires the following modules/versions
App::ZofCMS::Plugin::Base => 0.0111,
Spreadsheet::DataToExcel => 0.0103,

Zoffix Znet, <zoffix at cpan.org> (http://zoffix.com/, http://haslayout.net/, http://mind-power-book.com/)

Please report any bugs or feature requests to bug-app-zofcms-plugin-datatoexcel at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=App-ZofCMS-Plugin-DataToExcel. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

You can find documentation for this module with the perldoc command.
perldoc App::ZofCMS::Plugin::DataToExcel
You can also look for information at:
http://rt.cpan.org/NoAuth/Bugs.html?Dist=App-ZofCMS-Plugin-DataToExcel

Copyright 2011 Zoffix Znet.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.