Many of us likely have used Perl to manipulate speadsheets, either as CSV, or using one of the Spreadsheet: modules from CPAN.
But how many of us use Perl One-Liners to manipulate MS Excel Spreadsheets? Can you do this... Yes You Can, with XLSPerl http://perl.jonallen.info/projects/xlstools
While not the most elegant solution I am sure, I have worked up a short example. The code below reads "Sheet1" and prints the value of cells in column "F" each time a unique value is discovered. This has the effect of 'deduping', or removing duplicates.
xlsperl -nle "$val=$_;if($WS eq q(Sheet1) && $COL eq q(F)){unless($found{$val}){print qq($val)}$found{$val}++}" Contacts.xls
Note the use of q() and qq() to account for the requirement under Windows to use double quotes on the command line.
I was wondering if anyone else can share their XLS one-liners, particularly if my musings have prompted you to experiment with XLSperl for the first time! Those deft enough to execute the hack within cmd.exe deserve extra cudos.
Please reply with your wizardly one-liners, or if you merely came with an opinion, offer a well written one...
-- Patrick
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: MS Excel One-Liner Challenge
by shmem (Chancellor) on Apr 21, 2009 at 23:02 UTC | |
|
Re: MS Excel One-Liner Challenge
by graff (Chancellor) on Apr 22, 2009 at 09:11 UTC | |
by spectre9 (Beadle) on Apr 22, 2009 at 13:43 UTC |