NAME
Catmandu::Exporter::Table - ASCII/Markdown table exporter
SYNOPSIS
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 --header ID,Name < sample.csv
| ID | Name |
|----|------|
| 23 | foo |
| 42 | bar |
| 99 | doz |
#!/usr/bin/env perl
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
CONFIGURATION
Table output can be controlled with the options "fields", "columns",
"widths", and "condense" as documented in Text::MarkdownTable. The
additional option "schema" can be used to supply fields and (optionally)
columns in a JSON Table Schema
. The schema is a 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)" },
...
]
}
Without "fields" or "schema", columns are sorted alphabetically by field
name.
METHODS
See Catmandu::Exporter for additional exporter and methods ("file",
"fh", "encoding", "fix"..., "add", "commit"...).
SEE ALSO
Text::MarkdownTable, Catmandu::Exporter::CSV