Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

272
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!