The following module was proposed for inclusion in the Module List:
modid: Excel::Table
DSLIP: bdpOg
description: Process Excel sheets as structured arrays
userid: TMCMEEKI (Tom McMeekin)
chapterid: 11 (String_Lang_Text_Proc)
communities:
similar:
Spreadsheet::ParseExcel Spreadsheet::XLSX DBD::Excel
rationale:
Many spreadsheets are used to store semi-structured lists, such as
catalogues, manifests, etc. in a table-like structure. These files
typically evolve over time, and come to resemble databases,
particularly in the case of Excel workbooks, where multiple
worksheets are used in unison.
Whilst DBD::Excel can be used to provide an SQL-like interface to
such sheets, it may not be practical to do so, and certainly for
programmers not familiar or comfortable with SQL. This is
particularly true for spreadsheets which have evolved over time and
may not exhibit good database design, such as normalisation or
consistent "column" naming.
This module allows sheet data (assumed to be similarly structured
to tables) to be processed as arrays (or hashes if desired) of rows
with the ability to retrieve meta-data such as maximum value length,
titles, etc. It also allows for duplicate column naming which often
occur in such sheets which don't lend themselves well to handling
via DBD.
It leverages existing Excel parsing modules and as such caters to
older and newer Excel formats.
Some example code fragments: my $xs1 = Excel::Table->new;
$xs1->open('mybook.xls');
my @data = $xs1->extract('Sheet1');
@data = $xs1->select("column1,column2,column3", 'Sheet1');
printf "columns %d rows %d title_row %d\n", $xs1->columns,
$xs1->rows, $xs1->title_row;
enteredby: TMCMEEKI (Tom McMeekin)
enteredon: Mon Oct 22 10:34:07 2012 GMT
The resulting entry would be:
Excel::
::Table bdpOg Process Excel sheets as structured arrays TMCMEEKI
Thanks for registering,
--
The PAUSE
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=96a00000_818bb0f0bcff34cd&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=96a00000_818bb0f0bcff34cd&SUBMIT_pause99_add_mod_insertit=1
Peek at the current permissions:
https://pause.perl.org/pause/authenquery?pause99_peek_perms_by=me&pause99_peek_perms_query=Excel%3A%3ATable