El siguiente código filtra la hoja de cálculo de Google según la siguiente expresión booleana. Código gracias a https://stackoverflow.com/users/19043534/newaza
function DeleteEmptyRows() { const sheet = SpreadsheetApp.getActiveSheet() const values = sheet.getDataRange() .getValues() .filter(row => row[9] !== '' && row[7] !== '' && row[6] !== '') sheet.getDataRange().clearContent() return sheet.getRange(1, 1, values.length, values[0].length) .setValues(values) } Sin embargo, tengo el problema de que algunos registros se eliminan aunque no coincidan con la expresión booleana. ¿Hay alguna manera de afirmar que las longitudes de row[9] row[6] y row[7] en la hoja antes y después de la operación de filtro?
¡Entonces el error fue causado por la expresión booleana! Sin embargo, la sugerencia de @Tanaike ayuda a depurar la longitud de la columna.
function delDups() { const sheet = SpreadsheetApp.getActiveSheet(); const orgValues = sheet.getDataRange().getValues(); console.log(orgValues.length); const values = orgValues.filter(row => !(!row[7] && !row[6])); sheet.getDataRange().clearContent(); console.log(values.length); return sheet.getRange(1, 1, values.length, values[0].length) .setValues(values); }