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