Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Excel Text parsing problem

by Anonymous Monk
on Nov 08, 2012 at 09:40 UTC ( #1002853=note: print w/ replies, xml ) Need Help??


in reply to Excel Text parsing problem

print "$cell->value" will never call value, interpolation doesn't work like that


Comment on Re: Excel Text parsing problem
Re^2: Excel Text parsing problem
by reaper9187 (Scribe) on Nov 08, 2012 at 09:52 UTC
    What do you suggest ??
      no i think you didnt understand the problem .. When i use the print command , it only displays the text in the command prompt window ( i have absolutely no problem in doing that evn now)... What i'm looking for is a way to print this text on a text area in a GUI window using perl Tk... I have defined the main widnow , text areas, alignment etc.. i have to display this text on the main GUI window..I use the $txt ->insert command to print it in the text area... but somehow it prints only some of the values(rather than all) ...
        Here is the entire code
        #!/usr/local/bin/perl use Tk; # Main Window my $mw = new MainWindow; $mw->Frame(-background => 'red')->pack(-ipadx =>50, -side => "left", - +fill => "y"); #Making a text area my $txt = $mw -> Scrolled('Text',-width => 150, height => 40, -scrollb +ars=>'e', -font => "fixed 8 bold" ) -> pack (); $txt->insert('end', ""); #Declare that there is a menu my $mbar = $mw -> Menu(); $mw -> configure(-menu => $mbar); #The Main Buttons my $file = $mbar -> cascade(-label=>"File", -underline=>0, -tearoff => + 0); my $open = $mbar -> cascade(-label=>"Open", -underline=>0, -tearoff => + 0); my $tool= $mbar -> cascade(-label =>"Tools", -underline=>0, -tearoff = +> 0); my $parser = $mbar -> cascade(-label =>"RL ", -underline=>0, -tearoff +=> 0); my $help = $mbar -> cascade(-label =>"Help", -underline=>0, -tearoff = +> 0); ## File Menu ## $file -> command(-label => "Home", -underline=>0, -command=> \&home ); $file -> command(-label => "Check ", -underline=>0, -command=> \&define ); $file -> checkbutton(-label =>"faults", -underline => 0, -command => \&faults); $file -> separator(); $file -> command(-label =>"Exit", -underline => 1, -command => sub { exit } ); ##Open Menu## $open->command( -label => 'Open', -underline => 0, -command => \&f_ope +n ); $open->command( -label => 'Save', -underline => 0, -command => \&f_sav +e ); $open->separator; $open->command( -label => 'Exit', -underline => 1, -command => sub{ +exit} ); ## Tools Menu ## $tool -> command(-label => "Ne", -underline=>0, -command=> \&nwplan ); $tool -> command(-label => " ", -underline=>0, -command=> \&optimize ); $tool -> separator(); ## Parse Menu ## $parser -> command(-label => "P", -underline=>0, -command=> \&parse ); ## Help Menu ## $help -> command(-label => "About", -underline=>0, -command=> \&help ); MainLoop; sub help { my ($opt) = @_; $mw->messageBox(-message=>"This function is not available yet"); } Mainloop; sub f_open { my $filename = $mw->getOpenFile( -title => 'Open File:', -defaultextension => '.xls', -initialdir => '.' ); warn "Opened $filename\n"; open(MYFILE,$filename); # Text::Iconv is not really required. # This can be any object with the convert method. Or nothing. use Spreadsheet::ParseExcel; my $parser = Spreadsheet::ParseExcel->new(); my $workbook = $parser->parse($filename); if ( !defined $workbook ) { die $parser->error(), ".\n"; } for my $worksheet ( $workbook->worksheet(1) ) { my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max ) = $worksheet->col_range(); for my $row ( $row_min .. 20 ) { for my $col ( $col_min .. $col_max ) { my $cell = $worksheet->get_cell( $row, $col ); next unless $cell; print "Row, Col = ($row, $col)\n"; print "Value = ", $cell->value(), "\n"; print "\n"; $txt->insert('end',"$row:$col----$worksheet->{Cells +}[$row][$col]->{Val}\n"); } } } }
        Another thing i noticed is that this script seems to run fine on smaller files (worksheets with less rows) .... It displays all data in text area as i expect but acts weirdly for larger files

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1002853]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2015-07-02 05:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (29 votes), past polls