Add ssdiff to examples
[Spreadsheet-Read.git] / examples / xls2csv
1 #!/pro/bin/perl
2
3 # xls2csv: Convert Microsoft Excel spreadsheet to CSV
4 #          (m)'13 [24-10-2013] Copyright H.M.Brand 2008-2014
5
6 use strict;
7 use warnings;
8
9 sub usage
10 {
11     my $err = shift and select STDERR;
12     print "usage: $0 [ -o file.csv ] file.xls\n";
13     @_ and print join "\n", @_, "";
14     exit $err;
15     } # usage
16
17 use Getopt::Long qw( :config bundling nopermute passthrough );
18 my $csv;
19 my $opt_f;
20 GetOptions (
21     "help|?"    => sub { usage 0; },
22     "o|c=s"     => \$csv,
23     "f"         => \$opt_f,
24     ) or usage 1;
25
26 my $xls = shift or usage 1, "No input file";
27 -r $xls         or usage 1, "Input file unreadable";
28 -s $xls         or usage 1, "Input file empty";
29
30 $csv or ($csv = $xls) =~ s/\.xls$/.csv/i;
31 if (-f $csv) {
32     $opt_f or die "$csv already exists\n";
33     unlink $csv;
34     }
35
36 print STDERR "Converting $xls to $csv ...\n";
37 open STDOUT, ">", $csv;
38 exec "xlscat", "-c", $xls;