Saltar al contenido

Agregar varias filas a la hoja de cálculo – Google Apps Script

Queremos enseñarte la mejor solución que encontramos on line. Deseamos que te sea de mucha ayuda y si deseas aportar alguna mejora siéntete libre de hacerlo..

Solución:

Puede usar el método Range.setValues() que establecerá los valores a la vez, y un bloqueo de secuencia de comandos (u otro bloqueo, depende de su caso de uso) para evitar que otras instancias de la secuencia de comandos realicen anexos al mismo tiempo. Solo necesita obtener el buen rango (con array length) y la buena posición (con el método sheet.getLastRow() + 1). Aquí hay un ejemplo:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var example = [[1,2,3],[4,5,6],[7,8,9]];

LockService.getScriptLock().waitLock(60000);
sheet
  .getRange(
    sheet.getLastRow() + 1,
    1,
    example.length,
    example[0].length
  )
  .setValues(example);

Advertencia: Esto no protege contra humanos u otros scripts.

Me aseguraría de crear también una variable de fila y columna para este fragmento de código. A veces, GAS arrojará un error si intenta agregar object.length directamente en la función getrange. es decir

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var example = [[1,2,3],[4,5,6],[7,8,9]];
var row = example.length;
var column = example[0].length;

sheet.getRange(sheet.getLastRow()+1, 1, row, column).setValues(example);

Debe consultar la documentación oficial de Sheet Class, hay una serie de métodos de inserción de filas a granel enumerados, uno de los cuales puede ajustarse a sus criterios. Si eso resulta insuficiente, es posible que desee consultar el Servicio de hojas avanzadas.

EDITAR

En respuesta a su comentario, no creo que haya una forma de agregar filas y datos a granel como una operación puramente atómica. Pero hay una manera de abordar sus inquietudes con respecto a las mutaciones intermedias, a través de la API de LockService. Este servicio le permite evitar el acceso simultáneo a un bloque de código, por lo que para su caso de uso puede aprovechar los métodos de inserción masiva para crear nuevas filas y completarlas sin tener que preocuparse por las mutaciones.

Si eres capaz, puedes dejar una crónica acerca de qué le añadirías a este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *