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
    <http://johnmacfarlane.net/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
      <http://dataprotocols.org/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.

