NAME
Data::Tabular - Handy Table Manipulation and rendering Object
SYNOPSIS
use Data::Tabular;
$table = Data::Tabular->new(
headers => ['one', 'two'],
data => [
['a', 'b'],
['c', 'd']
],
extra_headers => [ 'three' ],
extra => {
'three' => sub {
my $self = shift;
my $a = $self->get('one');
my $b = $self->get('two');
$a . $b;
},
},
group_by => {
},
output => {
headers => [ 'three', 'one', 'two' ],
},
);
DESCRIPTION
Data::Tabular has four major sections:
The data section. This is the base table, it contains a set of rows that is made up of named columns.
The extra section. This is a set of named columns that are added to the table.
The group_by section. This is allows titles, and subtotals to be inserted into table.
The output section. This allows the output to be formatted and rendered for a particular type of output. Currently HTML and Excel spreadsheets are supported.
Of these only the data section is required.
Data Section
The Data section consists of two pieces of information a list of headers names and a 2 dimensional array of data.
API
Constructor
- new
-
The new method
Output Control Methods
- output
-
Get the output object.
Accessor Methods
- data
-
The data method returns a Data::Table object.
- extra
-
The extra method returns a Data::Table::Extra object.
- grouped
-
The grouped method returns a Data::Table::Grouped object.
- headers
-
The headers method returns the available headers in the Data::Table::Extra object. This is the headers from both the data section and the extra section. These are the headers that can be in the output section.
Configure Methods
Display Methods
- html
-
returns html representation of the table.
- xls
-
returns xls representation of the table.
- txt
-
returns text representation of the table.
- csv
-
returns a comma separated representation of the table.
EXAMPLES
my $st = $dbh->prepare('Select * from my_test_table');
my $data = selectall_arrayref($st);
my $headers = $st->{NAMES}
my $table = Data::Tabular->new(
data => $data,
headers => $headers,
);
AUTHOR
"G. Allen Morris III" <gam3@gam3.net>