in reply to Re: Using Spreadsheet::WriteExcel with mod_perl and Content-Disposition?
in thread Using Spreadsheet::WriteExcel with mod_perl and Content-Disposition?

# generate your Spreadsheet binary and put it in, oh # $sheet, ok?
So, I still need to generate the file, and read it into $somevariable do I?
Could I take the Spreadsheet::WriteExcel->new("-") call (STDOUT(?)) and stuff that onto $somevariable?

If I run the following code...
# Send the content type my $name = "testing.xls"; print "Content-disposition: attachment; filename=$name\n"; print "Content-type: application/vnd.ms-excel\n\n"; # Redirect the output to STDOUT my $workbook = Spreadsheet::WriteExcel->new("-"); my $worksheet = $workbook->addworksheet(); $worksheet->write(0, 0, "This should work."); $worksheet->write(0, 1, "In theory."); $workbook->close();
It'll prompt the user to save the file, (named excel - because of mod_perl) When they click "ok" to save it, its called "testing.xls" like it should be.
But the spreadsheet is empty... :=/
Hrm, interesting
I like problems like this. I always end up learning something new. Yay.


_14k4

Replies are listed 'Best First'.
Re: Re: Re: Using Spreadsheet::WriteExcel with mod_perl
by jmcnamara (Monsignor) on Mar 15, 2001 at 05:19 UTC
    If you want to write to a scalar instead of a file I can send you a patch (it will be in the next version) that will let you do this:
    #!/usr/bin/perl -w use strict; use IO::Scalar; use Spreadsheet::WriteExcel; my $xls_str; tie *XLS, 'IO::Scalar', \$xls_str; my $workbook = Spreadsheet::WriteExcel->new(\*XLS); my $worksheet = $workbook->addworksheet(); $worksheet->write(0, 0, "Hi Excel!"); $workbook->close(); # The Excel file is now in $xls_str.
    or to some other filehandle like this:     my $workbook  = Spreadsheet::WriteExcel->new(\*STDOUT);

    John.
    --
    And the eighth and final rule, if this is your first time using Perl, you will have to write code.

      Ohhhh, see, that only makes sense. If its in a newer ver, dont go out of your way for little old one4k4. But thank you for the insight. :)