awohld has asked for the wisdom of the Perl Monks concerning the following question:
I see it uses OLE::Storage_Lite in place of depreciated Spreadsheet::WriteExcel::Big to overcome the 7MB limit. I don't see how to apply the OLE::Storage_Lite from the Docs.Maximum Spreadsheet::WriteExcel filesize, 7087104 bytes, exceeded. To +create files bigger than this limit please refer to the "Spreadsheet: +:WriteExcel::Big" documentation.
#!/usr/bin/perl -w use strict; use My::DB; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; use Spreadsheet::ParseExcel::SaveParser::Workbook; # make new connection to database my $dbh = My::DB->new( { server => 'my_server', db => 'my_database' } +); # data query my $sth_query = $dbh->prepare(" SELECT Data_1, Data_2 FROM My_Table WHERE 1 "); # execute query $sth_query->execute; # Open the template with SaveParser my $parser = Spreadsheet::ParseExcel::SaveParser->new; my $template = $parser->Parse('./data/worksheet_11_21_2008.xls'); my $workbook; { # SaveAs generates a lot of harmless warnings about unset # Worksheet properties. You can ignore them if you wish. local $^W = 0; # Rewrite the file or save as a new file $workbook = $template->SaveAs('./data/new_worksheet_11_21_2008 +.xls'); } # get the first worksheet my $worksheet = $workbook->sheets(0); # start writing here my $row = 7; while ( my @row = $sth_query->fetchrow ) { my ( $data_1, $data_2 ) = @row; # write the data to the excel file $worksheet->write( $row, 1, $data_1 ); $worksheet->write( $row, 2, $data_2 ); # increment to next excel row $row++; } # close workbook $workbook->close();
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: File Too Big - Spreadsheet::ParseExcel::SaveParser
by jmcnamara (Monsignor) on Nov 26, 2008 at 01:34 UTC | |
by awohld (Hermit) on Nov 26, 2008 at 20:10 UTC |