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