NAME
Spreadsheet::XlateExcel - Trigger a callback subroutine on each row of an Excel spreadsheet
VERSION
Version 0.03
SYNOPSIS
This modules triggers a callback subroutine on each row of an Excel spreadsheet.
Wrote this simple module because I was fed up from writing the same boilerplate code ever when I had to mine spreadsheets for data.
Operates on every sheet unless a given sheet is targeted by name, RE inclusion or RE exclusion.
Operates on every column unless targeted by column head name or RE (inclusion).
For example:
my
$id
= Spreadsheet::XlateExcel->new ({
file
=>
'sheet.xls'
});
# rip odd rows of "Sheet2" sheet
my
$lol
;
$id
->xlate ({
on_sheet_named
=>
'Sheet2'
,
for_each_row_do
=>
sub
{
my
(
$sheet_id
,
$row
,
$row_vs
) =
@_
;
push
@$lol
,
$row_vs
unless
$row
% 2;
},
});
METHODS
new
my
$id
= Spreadsheet::XlateExcel->new ({
file
=>
'sheet.xls'
[,
formatter
=> Spreadsheet::ParseExcel::Fmt->new })
Ye constructor.
Optional formatter attribute is a Spreadsheet::ParseExcel formatter instance. Refer to http://metacpan.org/module/Spreadsheet::ParseExcel#parse-filename-formatter- for more about such formatters.
xlate
$self
->xlate ({
for_each_row_do
=>
sub
{
my
(
$sheet_id
,
$row
,
$row_vs
) =
@_
; ... } })
Applies for_each_row_do
sub to each row of each sheet (unless filtered, see below) of the book.
Options:
on_sheet_named
: targets a given book sheet by nameon_sheets_like
: targets a given book sheet by RE inclusion on nameon_sheets_unlike
: targets a given book sheet by RE exclusion on nameon_columns_heads_named
: targets columns via a listref of stringson_columns_heads_like
: targets columns via a listref of regular expressions
Callback function gets called for each row, fed with Spreadsheet::ParseExcel::Worksheet ID, row index and arrayref of row values parameters.
Returns self.
book_id
my
$book_id
=
$self
->book_id ()
Accessor to Spreadsheet::ParseExcel::Workbook instance ID.
AUTHOR
Xavier Caron, <xav at cpan.org>
BUGS
Please report any bugs or feature requests to bug-spreadsheet-xlateexcel at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Spreadsheet-XlateExcel. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Spreadsheet::XlateExcel
You can also look for information at:
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Spreadsheet-XlateExcel
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
Code is available through github (http://github.com/maspalio/Spreadsheet-XlateExcel).
ACKNOWLEDGEMENTS
To Kawai Takanori, Gabor Szabo and John McNamara, authors of cool http://search.cpan.org/dist/Spreadsheet-ParseExcel/ module.
LICENSE AND COPYRIGHT
Copyright 2010 Xavier Caron.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.