rowIndexOf method

Future<int> rowIndexOf(
  1. Object key, {
  2. bool add = false,
  3. dynamic inColumn = 1,
})

Returns index of a row with key value in inColumn.

Expands current sheet's size if requested range is out of sheet's bounds.

key - value to look for

inColumn - optional (defaults to 1), column index in which key is looked for, columns start at index 1 (column A)

add - optional (defaults to false), whether the key should be added to inColumn in case of absence

Returns Future -1 if key is not found and add is false.

Throws GSheetsException.

Implementation

Future<int> rowIndexOf(
  Object key, {
  bool add = false,
  inColumn = 1,
}) async {
  final rKey = parseKey(key);
  final rowKeys = await column(inColumn);
  var row = rowKeys.indexOf(rKey) + 1;
  if (row < 1) {
    row = -1;
    if (add) {
      await _ws._update(
        values: [rKey],
        range: await _ws._columnRange(inColumn, rowKeys.length + 1, 1),
        majorDimension: dimenColumns,
      );
      row = rowKeys.length + 1;
    }
  }
  return row;
}