Skip to content

LibreCat/Catmandu-Exporter-Table

Repository files navigation

NAME

Catmandu::Exporter::Table - ASCII/Markdown table exporter

STATUS

Build Status Coverage Status Kwalitee Score

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

  • 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.

COPYRIGHT AND LICENSE

Copyright Jakob Voss, 2014-

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.