def rename(opts = {})
      if opts[:rows]
        opts[:rows] = opts[:rows][0,nrows]
        opts[:rows] += row_labels[opts[:rows].size, nrows]
      end

      if opts[:cols]
        opts[:cols] = opts[:cols][0,ncols]
        opts[:cols] += col_labels[opts[:cols].size, ncols]
      end

      @row_labels = opts[:rows] if opts[:rows]
      @col_labels = opts[:cols] if opts[:cols]
    end
def rename(opts = {})
      if opts[:rows]
        opts[:rows] = opts[:rows][0,nrows]
        opts[:rows] += row_labels[opts[:rows].size, nrows]
      end

      if opts[:cols]
        opts[:cols] = opts[:cols][0,ncols]
        opts[:cols] += col_labels[opts[:cols].size, ncols]
      end

      @row_labels = opts[:rows] if opts[:rows]
      @col_labels = opts[:cols] if opts[:cols]
    end
Renames the row and column labels

   sheet.rename(rows: ['Row 1', 'Row 2'], cols: ['Col 1', 'Col 2'])

 If the provided rows and columns are larger than the spread sheet's rows
 and columns then only the respective row and column values are used. If
 the row and column labels are fewer than the respective row and column
 sizes the old labels are left untouched for the missing new labels