in reply to Unable to use Spreadsheet::ExcelHashtable module

Your example code and error message don't seem to match. If parse_table was given "TestCase " the error should have said ERROR: No Cell found with <TestCase >....

Regardless, parse_table calls the internal function _search_var, passing your search term. Neither routine modifies the search term in any way. It then checks every cell for a match like this:

if ( defined $cell ) { my $val = $cell->value; if ($val =~ /\s+$/ ) { $val =~ s/\s+//g; } if ( $val eq "$var") { return "$row $col"; } }
Note that if the cell has trailing white space then all white space is stripped from $val before comparing with your search term in $var. It can never find "TestCase ".

Replies are listed 'Best First'.
Re^2: Unable to use Spreadsheet::ExcelHashtable module
by Anonymous Monk on Oct 25, 2011 at 06:24 UTC

    Thank u very much, it worked for me, I want to retreive values from $excel_hash

    for (keys %{$excel_hash}) { print "$_\n"; }

    Above is printing the values but i am unable to interprete it properly..please explain me..

      %{$excel_hash}: treat the variable $excel_hash as a hash. perlreftut perlref perldsc
      (keys %{$excel_hash}): return a list of keys for the given hash. keys
      for (keys %{$excel_hash}) {: loop over the hash keys, setting $_ (by default because no variable was given to for) to each key in turn. For Loops
      for (keys %{$excel_hash}) { print "$_\n"; }: print each hash key (note: not the value, just the key).
      for (keys %{$excel_hash}) { print "key:$_ = $excel_hash->{$_}\n"; }: print keys and values.

      For a complete view of the structure of $excel_hash, try:

      use Data::Dumper; print Dumper($excel_hash);