initial port to Excel::Writer::XLSX
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 28 Dec 2010 13:56:16 +0000 (13:56 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 28 Dec 2010 13:56:16 +0000 (13:56 +0000)
Which doesn't seem to work as-is yet!

git-svn-id: svn://svn.rot13.org/SQL2XLS@27 2e857b76-582b-47e5-ad5c-b3ba0f0ee29b

sql2xlsx.cgi

index 0de8e00..2cad0b7 100755 (executable)
@@ -64,7 +64,7 @@ Dobrica Pavlinusic, dpavlin@rot13.org, L<http://svn.rot13.org/index.cgi/SQL2XLS/
 
 =cut
 
-use Spreadsheet::WriteExcel;
+use Excel::Writer::XLSX;
 use DBI;
 use CGI::Carp qw(fatalsToBrowser);
 use Encode qw/decode/;
@@ -74,12 +74,12 @@ our $dsn      = 'DBI:Pg:dbname=';
 our $database = 'template1';
 our $user     = 'dpavlin';
 our $passwd   = '';
-our $path     = 'sql_reports.xls';
+our $path     = 'sql_reports.xlsx';
 
 our $db_encoding     = 'iso-8859-2';
 our $xls_date_format = 'dd.mm.yyyy';
 
-our $debug = 1;
+our $debug = $ENV{DEBUG} || 0;
 
 my $sql_dir = $ENV{SCRIPT_FILENAME} || '.';
 $sql_dir =~ s,/[^/]+$,,;
@@ -109,10 +109,11 @@ my $workbook;
 if ($ENV{GATEWAY_INTERFACE} && $ENV{GATEWAY_INTERFACE} =~ m/CGI/i) {
        # use as cgi script
        print "Content-type: application/vnd.ms-excel\n\n";
-       $workbook = Spreadsheet::WriteExcel->new("-");
+       $workbook = Excel::Writer::XLSX->new("-");
 } else {
        # Create a new Excel workbook
-       $workbook = Spreadsheet::WriteExcel->new( $path );
+       $path =~ s{\.xls$}{\.xlsx};
+       $workbook = Excel::Writer::XLSX->new( $path );
        warn "Creating XLS file $path\n";
 }
 
@@ -151,7 +152,7 @@ foreach my $sql_file (@sql_files) {
 
        # Add a worksheet
        warn "# clipping sheet name '$sheet_name' to 31 char limit\n" if length $sheet_name > 31;
-       my $worksheet = $workbook->addworksheet( substr($sheet_name,0,31) );
+       my $worksheet = $workbook->add_worksheet( substr($sheet_name,0,31) );
 
        print STDERR "working on $sql_file\n" if ($debug);
 
@@ -180,7 +181,7 @@ foreach my $sql_file (@sql_files) {
        if ($comment) {
 
                #  Add and define a format
-               my $fmt_comment = $workbook->addformat();    # Add a format
+               my $fmt_comment = $workbook->add_format();    # Add a format
                $fmt_comment->set_bold();
 
                $comment =~ s/^\s+//;
@@ -190,7 +191,7 @@ foreach my $sql_file (@sql_files) {
                $row+=2;
        }
 
-       my $fmt_header = $workbook->addformat();    # Add a format
+       my $fmt_header = $workbook->add_format();    # Add a format
        $fmt_header->set_italic();
 
        foreach my $sql ( split(/;/, $full_sql ) ) {
@@ -231,6 +232,7 @@ foreach my $sql_file (@sql_files) {
                }
 
                $row++; # separete queries by one row
+               warn "# row $row\n";
        }
 }