Clearbuilt-Excelerator

 view release on metacpan or  search on metacpan

README.mkdn  view on Meta::CPAN

             { value => $cost_of_widget_2, format => [ halign => 'right', type => 'currencyacct' ] },
             { value => $qty_of_widget_2 * $cost_of_widget_2,
                  format => [ halign => 'right', type => 'currencyacct' ] },
          ],
          [ 'Totals',
             { value  => "=sum(B3:B4)", format => [ tb => 2, halign => 'right', type => 'dec1comma' ] },
             { value  => "=sum(C3:C4)", format => [ tb => 2, halign => 'right', type => 'currencyacct' ] },
             { value  => "=sum(D3:D4)", format => [ tb => 2, halign => 'right', type => 'currencyacct' ] },
          ],
       ],
    );
    my $workbook = Clearbuilt::ExcelErator->new( { filename => 'my_workbook.xlsx' } );
    $workbook->write_the_book( [\%spreadsheet] );

# DESCRIPTION

Clearbuilt::Excelerator is a wrapper around [Excel::Writer::XLSX](https://metacpan.org/pod/Excel%3A%3AWriter%3A%3AXLSX) that
simplifies and standardizes its usage. You create a hash defining your
spradsheet, and it does the rest for you!

More documentation of the hash will be added later, but the ["SYNOPSIS"](#synopsis) above shows a 
simple and common usage, with frequently-used options. A more-extensive example can be found
in the package, in `examples/create_test_excel_sheet`.

# THE WORKBOOK ARRAY

The workbook is an array of hashes, each of which is a worksheet.

Note that the hash for this simple example is sent as an arrayref-to-the-hash.
The implication of that it is, of course, that you could create multiple
hashes, push them into an array in the order you want, and send a reference
to that array to `write_the_book` and get a multi-sheet workbook.

# THE WORKSHEET HASH

There are only three valid elements in this hash:

- `title`: The title of the spreadsheet, which will show up in the tabs at the bottom.
- `col_widths`: A hashref of column widths. The key is the column number (beginning with 1), and the value is the desired width.
- `rows`: The array of rows for the sheet.

# THE WORKSHEET ROWS ARRAY

The `rows` array is an array of arrayrefs; each of **those** is an arrayref of cells.  The cell can be a 
scalar, in which case it is displayed with default formatting, or a hashref with a `value` and optionally
a `format`.  If you do not specify a `format`, you get the default for that cell.

# EXPORTED METHODS

## new({ filename => <filespec>})>

Opens the desired file for writing.  At this time, `filename` is the only parameter, which is passed
verbatim into [Excel::Writer::XLSX](https://metacpan.org/pod/Excel%3A%3AWriter%3A%3AXLSX); there may be other options in the future.

## write\_the\_book(\\%spreadsheet);

Writes the file, and closes it.  Easy-peasy!

# REQUIRES

- [Modern::Perl](https://metacpan.org/pod/Modern%3A%3APerl)
- [Moo](https://metacpan.org/pod/Moo)
- [Excel::Writer::XLSX](https://metacpan.org/pod/Excel%3A%3AWriter%3A%3AXLSX)

# ROADMAP

- Add other formatting functions
- Default column formatting
- More documentation
- A robust unit test for `write_the_book`

# AUTHOR

D Ruth Holloway <ruthh@clearbuilt.com>

# COPYRIGHT AND LICENSE

This software is copyright (c) 2022 by Clearbuilt.

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



( run in 2.025 seconds using v1.01-cache-2.11-cpan-d8267643d1d )