Me gustaría eliminar todos los datos después de la fila [x]. Por ejemplo, si x = 355, quiero que se eliminen todos los datos después de la fila 355.
Puedo eliminar todo el contenido en una hoja simple en la hoja de cálculo de Google con:
var sheet = ss.getSheetByName('foo'); sheet.clearContents();He intentado hacerlo con el método getRange:
var range = SpreadsheetApp .getActive() .getSheetByName("foo") .getRange("A20:E71"); range.clearContent();pero esto es simplemente borrar datos internos de A20:E71. Lo que quiero es eliminar todos los datos después de la fila A20.
const sheet = SpreadsheetApp.getActiveSpreadsheet() .getSheetByName(`foo`) sheet.getRange(21, 1, sheet.getLastRow()-20, sheet.getLastColumn()) .clearContent()El rango se define como todas las filas más allá del equivalente de A20.
function myFunction(allRowsAfter) { const sheet = SpreadsheetApp.getActiveSpreadsheet() .getSheetByName(`foo`) sheet.getRange(allRowsAfter+1, 1, sheet.getLastRow()-allRowsAfter, sheet.getLastColumn()) .clearContent() } myFunction(20); // Delete all rows after 20Ver:
function clearAfterRow(r) {//clear everything after row r const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("foo"); const sr = r + 1; sh.getRange(sr, 1, sh.getLastRow() - sr + 1, sh.getLastColumn()).clearContent(); }Debe utilizar getLastColumn() y getLastRow() .
El número de filas que se eliminarán según una fila x se puede calcular mediante lastRowIndex - x + 1 . En términos de columnas, puede simplemente eliminar todas las columnas usando 1 como valor inicial para el rango y lastColumnIndex para la cantidad de columnas a eliminar.
Logger.log("Starting script...") const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const lastRow = ss.getLastRow(); const lastCol = ss.getLastColumn(); const x = 20; if(lastRow - x + 1 > 0) { ss.getRange(20, 1, lastRow - x + 1, lastCol).clearContent(); Logger.log(`Deleting all content in Range (${[x, 1, lastRow - x + 1, lastCol]})`); } Logger.log("Done.") Sin embargo, hay una cosa que debe tener en cuenta en caso de que ejecute esto varias veces o x sea más grande que la última fila con contenido en su Hoja. Debe verificar si el rango afecta al menos a una fila; de lo contrario, obtendrá un error. The number of rows in the range must be at least 1. Por lo tanto, verifique lastRow - x + 1 > 0 antes de eliminarlo.