Class Filter

Filtro

Usa esta clase para modificar los filtros existentes en las hojas de Grid, el tipo de hoja predeterminado. Las hojas de cuadrícula son hojas normales con datos que no están conectados a una base de datos.

Si aún no hay un filtro en la hoja, crea uno con Range.createFilter().

Para usar esta clase, primero debes acceder al filtro de la hoja de cuadrícula con Range.getFilter() o Sheet.getFilter().

Usos comunes

Cómo quitar un filtro

La siguiente muestra obtiene el filtro en la hoja activa y lo quita.
const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
// Removes the filter from the active sheet.
filter.remove();

Obtén el rango al que se aplica el filtro.

En el siguiente ejemplo, se obtiene el filtro de la hoja activa y, luego, se usa el método getRange() de esta clase para registrar el rango al que se aplica el filtro.
const ss = SpreadsheetApp.getActiveSheet();
// Gets the existing filter on the active sheet.
const filter = ss.getFilter();
// Logs the range that the filter applies to in A1 notation.
console.log(filter.getRange().getA1Notation());

Métodos

MétodoTipo de datos que se muestraDescripción breve
getColumnFilterCriteria(columnPosition)FilterCriteria|nullObtiene los criterios de filtro en la columna especificada o null si la columna no tiene criterios de filtro aplicados.
getRange()RangeObtiene el rango al que se aplica este filtro.
remove()voidQuita este filtro.
removeColumnFilterCriteria(columnPosition)FilterQuita los criterios de filtro de la columna especificada.
setColumnFilterCriteria(columnPosition, filterCriteria)FilterEstablece los criterios de filtro en la columna especificada.
sort(columnPosition, ascending)FilterOrdena el rango filtrado según la columna especificada, sin incluir la primera fila (la fila de encabezado) del rango al que se aplica este filtro.

Documentación detallada

getColumnFilterCriteria(columnPosition)

Obtiene los criterios de filtro en la columna especificada o null si la columna no tiene criterios de filtro aplicados.

Para obtener más detalles sobre los criterios de filtrado, encadena este método con métodos de la clase FilterCriteria.

const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
// Gets the filter criteria applied to column B of the active sheet
// and logs the hidden values.
const filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
console.log(filterCriteria);

Parámetros

NombreTipoDescripción
columnPositionIntegerEs la posición de la columna, indexada a partir de 1. Por ejemplo, el índice de la columna B es 2.

Volver

FilterCriteria|null: Es el criterio de filtro.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRange()

Obtiene el rango al que se aplica este filtro.

// Gets the existing filter on the active sheet.
const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
// Logs the range that the filter applies to in A1 notation.
console.log(filter.getRange().getA1Notation());

Volver

Range: Es el rango del filtro. Para obtener el rango en notación A1, encadena este método con Range.getA1Notation().

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

remove()

Quita este filtro.

// Removes the filter from the active sheet.
const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
filter.remove();

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeColumnFilterCriteria(columnPosition)

Quita los criterios de filtro de la columna especificada.

// Removes the filter criteria from column B.
const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
filter.removeColumnFilterCriteria(2);

Parámetros

NombreTipoDescripción
columnPositionIntegerEs la posición de la columna, indexada a partir de 1. Por ejemplo, el índice de la columna B es 2.

Volver

Filter: El filtro, para encadenar.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setColumnFilterCriteria(columnPosition, filterCriteria)

Establece los criterios de filtro en la columna especificada. Primero, crea el compilador de criterios de filtro con SpreadsheetApp.newFilterCriteria(). Luego, agrega criterios al compilador con la clase FilterCriteriaBuilder. Después de crear tus criterios, configúralos como el parámetro filterCriteria para este método.

const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
// Builds the filter criteria to use as a parameter for setColumnFilterCriteria.
const criteria = SpreadsheetApp.newFilterCriteria()
                     .setHiddenValues(['Hello', 'World'])
                     .build();
// Sets the filter criteria for column C.
filter.setColumnFilterCriteria(3, criteria);

Parámetros

NombreTipoDescripción
columnPositionIntegerEs la posición de la columna, indexada a partir de 1. Por ejemplo, el índice de la columna B es 2.
filterCriteriaFilterCriteriaSon los criterios de filtro que se deben establecer. Si estableces el criterio en null, se quitan los criterios de filtro de la columna especificada. También puedes usar removeColumnFilterCriteria(columnPosition).

Volver

Filter: El filtro, para encadenar.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

sort(columnPosition, ascending)

Ordena el rango filtrado según la columna especificada, sin incluir la primera fila (la fila de encabezado) del rango al que se aplica este filtro.

// Gets the existing filter and sorts it by column B in ascending order.
const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
filter.sort(2, true);

Parámetros

NombreTipoDescripción
columnPositionIntegerEs la posición de la columna, indexada a partir de 1. Por ejemplo, el índice de la columna B es 2.
ascendingBooleanSi es true, ordena el rango filtrado de forma ascendente; si es false, lo ordena de forma descendente.

Volver

Filter: El filtro, para encadenar.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets