Tengo una secuencia de comandos que importa datos de diferentes hojas de Google en una hoja, funciona perfectamente, excepto por el hecho de que cada vez que ejecuto la secuencia de comandos, los datos importados comienzan más abajo en la hoja. ¿Qué debo cambiar en la secuencia de comandos que cada vez que inicio la secuencia de comandos empujará los datos que comienzan en la primera fila de la hoja?
function getData() { get_IDs=["1pkcy4jx14odSN-Ir2Nqai89_0dJc7RiLapWxRWIURj4","1J8_cZsjEa9c8vktPBvqGvcdwUBAVkWT3NSdTnXp6tMk"]; var ss=SpreadsheetApp.getActiveSpreadsheet(); var copySheet =ss.getSheetByName("Sheet3"); copySheet.getRange('A1:Z').clear(); for(z=0;z<get_IDs.length;z++) { var ss1=SpreadsheetApp.openById(get_IDs[z]); var sheets =ss1.getSheetByName("Export Department"); var sheetsRange = sheets.getDataRange(); var sheetsValues = sheetsRange.getValues(); for(var y = 1;y<sheetsValues.length;y++) { copySheet.appendRow(sheetsValues[y]); } } }```Use setValues() en lugar de appendRow() e incremente un contador por el número de filas en cada importación:
function getData() { get_IDs = ["1pkcy4jx14odSN-Ir2Nqai89_0dJc7RiLapWxRWIURj4", "1J8_cZsjEa9c8vktPBvqGvcdwUBAVkWT3NSdTnXp6tMk"] var ss = SpreadsheetApp.getActiveSpreadsheet() var copySheet = ss.getSheetByName("Sheet3") copySheet.getRange('A1:Z').clear() let pasteRow = 1 for (z = 0; z < get_IDs.length; z++) { var ss1 = SpreadsheetApp.openById(get_IDs[z]) var sheets = ss1.getSheetByName("Export Department") var sheetsRange = sheets.getDataRange() var sheetsValues = sheetsRange.getValues() sheetsValues.splice(0, 1) copySheet.getRange(pasteRow, 1, sheetsValues.length, sheetsValues[0].length).setValues(sheetsValues) pasteRow += sheetsValues.length } }