NAME
Catmandu::Exporter::Table - ASCII/Markdown table exporter
SYNOPSIS
With catmandu command line client:
echo '{"one":"my","two":"table"} {"one":"is","two":"nice"}' | \
catmandu convert JSON --multiline 1 to Table
| one | two |
|-----|-------|
| my | table |
| is | nice |
catmandu convert CSV to Table --fields id,name --columns ID,Name < sample.csv
| ID | Name |
|----|------|
| 23 | foo |
| 42 | bar |
| 99 | doz |
In Perl scripts:
use Catmandu::Exporter::Table;
my $exp = Catmandu::Exporter::Table->new;
$exp->add({ title => "The Hobbit", author => "Tolkien" });
$exp->add({ title => "Where the Wild Things Are", author => "Sendak" });
$exp->add({ title => "One Thousand and One Nights" });
$exp->commit;
| author | title |
|---------|-----------------------------|
| Tolkien | The Hobbit |
| Sendak | Where the Wild Things Are |
| | One Thousand and One Nights |
DESCRIPTION
This Catmandu::Exporter exports data in tabular form, formatted in
MultiMarkdown syntax.
The output can be used for simple display, for instance to preview
Excel files on the command line. Use Pandoc
too further convert to other table
formats, e.g. latex, html5, mediawiki:
catmandu convert XLS to Table < sheet.xls | pandoc -t html5
By default columns are sorted alphabetically by field name.
CONFIGURATION
Table output can be controlled with the options fields, columns,
widths, and condense as documented in Text::MarkdownTable.
file
fh
encoding
fix
Standard options of Catmandu:Exporter
condense
Write table in condense format with unaligned columns.
fields
Field names as comma-separated list or array reference.
columns
Column names as comma-separated list or array reference. By default
field names are used as column names.
header
Include header lines. Enabled by default.
widths
Column widths as comma-separated list or array references. Calculated
from all rows by default. Long cell values can get truncated with
this option.
schema
Supply fields and (optionally) columns in a JSON Table Schema
as JSON file or hash
reference having the following structure:
{
"fields: [
{ "name": "field-name-1", "title": "column title 1 (optional)" },
{ "name": "field-name-2", "title": "column title 2 (optional)" },
...
]
}
METHODS
See Catmandu::Exporter
SEE ALSO
This module is based on Text::MarkdownTable.
Similar Catmandu Exporters for tabular data include
Catmandu::Exporter::CSV, Catmandu::Exporter::XLS, and
Catmandu::Exporter::XLSX.