Hey John,
I read your post about the reducing memory usage by avoiding the formating data. In fact, thatīs a great idea, and I really donīt want the formating data in these worksheets. But Iīm having trouble in fitting the code into mine. Can you or any of the fellow monks take a look?
Do I have to replace the names of the variables of the sub cell_handler?
#!/usr/bin/perl -w
use CGI qw( :standard);
use Spreadsheet::ParseExcel;
# The new objects
my $q = new CGI;
my $oExcel = Spreadsheet::ParseExcel->new( CellHandler => \&cell_handl
+er,
NotSetCell => 1 );
# McNamara's alternative cell handler
sub cell_handler {
my $workbook = $_[0];
my $sheet_index = $_[1];
my $row = $_[2];
my $col = $_[3];
my $cell = $_[4];
print $cell->{Val} , "<br>";
}
# The header
print $q->header( -type => "text/html");
# Starting the cronometer
$start = (times) [0];
# The reading
# my $file = "z4kjasdf.xls";
my $file = "acervo15k.xls";
# my $file = "teste1.xls";
my $oBook = $oExcel->Parse($file);
my($iR, $iC, $oWkS, $oWkC);
my @thisrow;
# Just the first worksheet...
$oWkS = $oBook->{Worksheet}[0];
for ( $iR = $oWkS->{MinRow} ; defined $oWkS->{MaxRow} && $iR <= $oWkS-
+>{MaxRow}; $iR++) {
@thisrow = ();
for ( $iC = $oWkS->{MinCol}; defined $oWkS->{MaxCol} && $iC <= $oWk
+S->{MaxCol}; $iC++) {
$oWkC = $oWkS->{Cells}[$iR][$iC];
if ($oWkC) {
push (@thisrow, $oWkC->{Val});
}
}
my ($col1, $col2, $col3, $col4, @othercols) = @thisrow;
print "$col1 <br>";
}
# Ending the cronometer
$end = (times) [0];
print "<b>$iR rows read in " , $end-$start , " seconds";
Thanks!
André
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.