Mercurial > hg > paul
diff bin/xls2tsv.pl @ 0:2aa53823fb21
new repo
| author | Henry S. Thompson <ht@inf.ed.ac.uk> |
|---|---|
| date | Sat, 06 Jun 2026 10:19:04 +0100 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/xls2tsv.pl Sat Jun 06 10:19:04 2026 +0100 @@ -0,0 +1,45 @@ +#!/usr/bin/perl + +#~ Converter Script for XLS to TSV. Handles Multiple Tabs into separate files. +#~ (c)2004 Anima Legato <l3gatosan@gmail.com> +#~ +#~ This code is redistributable and modifiable under the same terms as Perl +#~ itself. + +use strict; +use warnings; + +use Spreadsheet::ParseExcel::Simple; + +for (@ARGV) { + for (glob $_) { + next unless m/\.xls$/i; + next unless -r $_; + dump_books($_); + } +} + +sub dump_books { + my $file = shift; + my $eBook = Spreadsheet::ParseExcel::Simple->read($file); + unless (defined $eBook) { + warn "Can't open Spreadsheet in file $file (@".$file."\n"; + return undef; + } + my @sheet = $eBook->sheets; + for (0..0) { + next unless $sheet[$_]->has_data(); + #my $sfn = $file; + #$sfn =~ s?\.xls$??i; + #$sfn.= ((@sheet > 1) ? sprintf(".%02i",$_) : "").'.tsv'; + #open TAB, '>', $sfn or do { + # warn "Unable to write to $sfn"; + # next; + #}; + + while ($sheet[$_]->has_data) { + my @row = $sheet[$_]->next_row; + print join("\t",@row)."\n"; # print TAB ... + } + } +} ##--dump_books--##
