Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

277
Vistas
Google Apps Script Sheets PasteDataRequest ¿pegar en la columna en lugar de en la fila?

Mi secuencia de comandos actual pega bien los valores, pero los pega en la fila desde la coordenada de datos y lo necesito para pegar la columna. ¿Cómo puedo hacer eso?

Datos de ejemplo: coche, gato, murciélago, rata

Cómo está saliendo:

 | Car | cat | bat | rat |

Cómo debe salir:

 Car | ___ cat | ___ bat | ___ rat |

Fragmento de código de ejemplo:

 var gridCoordinate = Sheets.newGridCoordinate() gridCoordinate.sheetID = sheet.getSheetID() gridCoordinate.rowIndex = "1" gridCoordinate.columnIndex = "1" let pasteRequest = Sheets.newPasteDataRequest() pasteRequest.data = inputValues pasteRequest.type = SpreadsheetApp.CopyPasteType.PASTE_VALUES pasteRequest.coordinate = gridCoordinate pasteRequest.delimiter = "," let requests = [Sheets.newRequest()] requests[0].pasteData = pasteRequest; let batchUpdateRequest = Sheets.newBatchUpdateSpreadsheetRequest(); batchUpdateRequest.requests = requests var result = Sheets.Spreadsheets.batchUpdate(batchUpdateRequest, "REDACTED") Logger.log(result)

Editar para agregar: inputValues tiene que ser una cadena delimitada por comas según la documentación en PasteDataRequests

about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

No especifica cómo se crea la matriz, pero suponiendo que es una matriz 1D ["Coche", "gato", "murciélago", "rata"], debe transformarse en una matriz 2D usando testArray() [["Car "], ["gato"], ["murciélago"], ["rata"]].

Si es una cadena como un csv, pruebe testString() donde cada fila está separada por una nueva línea \n y cada celda por una coma.

Código.gs

 function testArray() { try { let a = ["Car", "cat", "bat", "rat"]; let b = a.map( c => [c] ); console.log(a); console.log(b); } catch(err) { console.log(err); } } function testString() { try { let a = "Car\ncat\nbat\nrat"; let b = Utilities.parseCsv(a); console.log(b); } catch(err) { console.log(err); } }

Registro de ejecución

 9:21:32 AM Notice Execution started 9:21:32 AM Info [ 'Car', 'cat', 'bat', 'rat' ] 9:21:32 AM Info [ [ 'Car' ], [ 'cat' ], [ 'bat' ], [ 'rat' ] ] 9:21:32 AM Notice Execution completed 3:12:37 PM Notice Execution started 3:12:38 PM Info [ [ 'Car' ], [ 'cat' ], [ 'bat' ], [ 'rat' ] ] 3:12:38 PM Notice Execution completed
about 4 years ago · Santiago Gelvez Denunciar

0

De There is not more than 2 rows. I gave the expected output in my original question. , supone que cuando su valor de muestra es Car, cat, bat, rat , para lograr su objetivo, ¿qué tal la siguiente modificación?

Puntos de modificación:

  • Cuando pregunté What is sheet of sheet.getSheetID()? , dijiste var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1") . En este caso, sheet.getSheetID() genera un error porque getSheetID debería ser getSheetId . Y también, se produce un error en gridCoordinate.sheetID . Porque, en este caso, se requiere que gridCoordinate.sheetID sea gridCoordinate.sheetId .
  • Para poner Car, cat, bat, rat en una columna usando su script, se usa replace(/,/g, "\n") .

Cuando estos puntos se reflejan en su guión, se convierte en lo siguiente.

Guión modificado:

 var inputValues = "Car, cat, bat, rat"; // This sample value is from your question. var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // This is from your reply. var gridCoordinate = Sheets.newGridCoordinate(); gridCoordinate.sheetId = sheet.getSheetId(); // Modified gridCoordinate.rowIndex = "1"; gridCoordinate.columnIndex = "1"; let pasteRequest = Sheets.newPasteDataRequest(); pasteRequest.data = inputValues.replace(/,/g, "\n"); // Modified pasteRequest.type = SpreadsheetApp.CopyPasteType.PASTE_VALUES; pasteRequest.coordinate = gridCoordinate; pasteRequest.delimiter = ","; let requests = [Sheets.newRequest()]; requests[0].pasteData = pasteRequest; let batchUpdateRequest = Sheets.newBatchUpdateSpreadsheetRequest(); batchUpdateRequest.requests = requests; var result = Sheets.Spreadsheets.batchUpdate(batchUpdateRequest, "REDACTED"); Logger.log(result)
  • Cuando se ejecuta este script, los valores de Car, cat, bat, rat se colocan en las celdas "B2:B5" de la hoja activa.

Nota:

  • En su situación, cuando quiera usar Sheets API, pensé que también podría usar el siguiente ejemplo.

     Sheets.Spreadsheets.Values.update({ values: Utilities.parseCsv(inputValues), majorDimension: "COLUMNS" }, "REDACTED", "Sheet1!B2", { valueInputOption: "USER_ENTERED" });

Referencia:

  • PegarSolicitudDeDatos
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda