code: def to_cell_table(self, merged=True):
      
      new_rows = []
      for row_index, row in enumerate(self.rows(CellMode.cooked)):
        new_row = []
        for col_index, cell_value in enumerate(row):
          new_row.append(Cell(cell_value, self.get_note((col_index, row_index))))
        new_rows.append(new_row)
      if merged:
        for cell_low, cell_high in self.merged_cell_ranges():
          anchor_cell = new_rows[cell_low[1]][cell_low[0]]
          for row_index in range(cell_low[1], cell_high[1]):
            for col_index in range(cell_low[0], cell_high[0]):
              # NOTE: xlrd occassionally returns ranges that don't have cells.
              try:
                new_rows[row_index][col_index] = anchor_cell.copy()
              except IndexError:
                pass
      return new_rows
docs: Returns a list of lists of Cells with the cooked value and note for each cell.