sub push_button2 { my $filename = $mw->getOpenFile( -title => 'Open File:', -defaultextension => '.xslx', -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"; } $txt -> delete('1.0', 'end'); for my $worksheet ( $workbook->worksheets(0) ) { my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max ) = $worksheet->col_range(); for my $row ( $row_min .. $row_max ) { for my $col(8) { my $cell = $worksheet->get_cell( $row, $col ); next unless $cell; if($worksheet->{Cells}[$row][8]->{Val} > 2) { if($worksheet->{Cells}[$row][21]->{Val} >75) { $txt -> insert('end', " $worksheet->{Cells}[$row][1]->{Val}\n"); $txt -> insert('end', "\n REASON: Other\n"); $txt -> insert('end', " DIAGNOSIS: Check the fault definition\n\n"); } elsif($worksheet->{Cells}[$row][13]->{Val} > 50) { $txt -> insert('end', " $worksheet->{Cells}[$row][1]->{Val}\n"); $txt -> insert('end', " \nREASON: Low Signal Strength\n"); $txt -> insert('end', " DIAGNOSIS: Check the fault definition for troubleshooting\n\n"); } elsif($worksheet->{Cells}[$row][16]->{Val} >50) { $txt -> insert('end', " $worksheet->{Cells}[$row][1]->{Val}\n"); $txt -> insert('end', " \nREASON: Bad Quality Uplink/Downlink\n"); $txt -> insert('end', " DIAGNOSIS: Check the fault definition for troubleshooting\n\n"); } } else {next;} } } close(MYFILE); } }