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 20
Ver:
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.