code: func (d *dbCache) value(row, col int) string {
  	rowId := row - d.firstRow
  	if rowId >= len(d.data) {
  		return ""
  	}
  	rowValues := d.data[rowId]
  	if col >= len(rowValues) {
  		return ""
  	}
  	return rowValues[col]
  }
docs: // returns the cell value for a given col and row. Col and row are absolute
  // value. But cache keeps limited number of rows to minimize memory usage.
  // So, the position of the value of the cell should be calculated
  // To simplify, the function just returns empty string if the cell is not
  // cached. It is unlikely but can happen