def [](index_or_hash)
      if index_or_hash.is_a? Symbol
        rv = nil
        begin
          rv = to_hash[index_or_hash]
        rescue NoMethodError
        end
        return rv
      elsif index_or_hash.is_a? String and index_or_hash.match(/^[A-Z]*$/)
        # it looks like a column indicator
        return to_a[Workbook::Column.alpha_index_to_number_index(index_or_hash)]
      elsif index_or_hash.is_a? String
        symbolized = Workbook::Cell.new(index_or_hash, {row:self}).to_sym
        self[symbolized]
      else
        if index_or_hash
          return to_a[index_or_hash]
        end
      end
    end
def [](index_or_hash)
      if index_or_hash.is_a? Symbol
        rv = nil
        begin
          rv = to_hash[index_or_hash]
        rescue NoMethodError
        end
        return rv
      elsif index_or_hash.is_a? String and index_or_hash.match(/^[A-Z]*$/)
        # it looks like a column indicator
        return to_a[Workbook::Column.alpha_index_to_number_index(index_or_hash)]
      elsif index_or_hash.is_a? String
        symbolized = Workbook::Cell.new(index_or_hash, {row:self}).to_sym
        self[symbolized]
      else
        if index_or_hash
          return to_a[index_or_hash]
        end
      end
    end
Overrides normal Array's []-function with support for symbols that identify a column based on the header-values and / or

 @example Lookup using fixnum or header value encoded as symbol
   row[1] #=> <Cell value="a">
   row["A"] #=> <Cell value="a">
   row[:a] #=> <Cell value="a">

 @param [Fixnum, Symbol, String] index_or_hash that identifies the column (strings are converted to symbols)
 @return [Workbook::Cell, nil]