Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

196
Visualizações
Script de la aplicación: crear una copia de una sola pestaña/hoja

Estoy tratando de hacer una copia de una sola pestaña u hoja de una hoja de cálculo con varias pestañas. Puedo hacer una copia de toda la hoja, sin embargo, esto incluye información que el usuario final no necesita ver.

He visto algunos hilos sobre cómo crear una nueva hoja de cálculo dentro de la secuencia de comandos de las aplicaciones y luego lidiar con los detalles, aunque el formato se vuelve complicado. Sé que hay una manera de solucionar esto, pero me gustaría saber si hay un método tan simple como este. Lo uso actualmente para copiar una hoja completa.

//Escrito como un verdadero novato.

 function Createcopy() { //Base var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Review') var date = sheet.getRange(1,3).getValue(); // Probably wont need. //Folder detail var folderid = '1iEILmAp3JiOTiPjFbDhv0bAfgu6AWhtd' var Folder = "https://drive.google.com/drive/folders/"+folderid Logger.log(folderid) //Create copy var title = sheet.getRange(1,4).getValue(); Logger.log(title) var filename = title var destFolder = DriveApp.getFolderById(folderid); var createdcopy = DriveApp.getFileById(ss.getId()).makeCopy(filename, destFolder); var url = createdcopy.getUrl() Logger.log(url) }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que su objetivo es el siguiente.

  • Desea copiar la hoja específica en una hoja de cálculo de Google a una nueva hoja de cálculo de Google.
  • Desea colocar la nueva hoja de cálculo en la carpeta específica.
  • Desea recuperar la URL de la nueva hoja de cálculo.

Puntos de modificación:

  • Como usted dice, su secuencia de comandos copia toda la hoja de cálculo.

  • En este caso, me gustaría proponer el siguiente flujo.

    1. Recuperar hoja de origen.
    2. Copie la hoja de origen en una nueva hoja de cálculo y elimine la hoja vacía predeterminada.
    3. Mueva una nueva hoja de cálculo a la carpeta de destino.
    4. Recuperar la URL de una nueva hoja de cálculo.

Cuando este flujo se refleja en su guión, se convierte en lo siguiente.

Guión modificado:

 function Createcopy() { var sheetName = 'Review'; // Please set the source sheet name. var folderId = '###'; // Please set the destination folder ID. // 1. Retrieve source sheet. var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(sheetName); var title = sheet.getRange(1, 4).getValue(); // New Spreadsheet title. This is from your script. // 2. Copy source sheet to a new Spreadsheet and remove the default empty sheet. var newSS = SpreadsheetApp.create(title); sheet.copyTo(newSS).setName(sheetName); newSS.deleteSheet(newSS.getSheets()[0]); // 3. Move a new Spreadsheet to the destination folder. var dstFolder = DriveApp.getFolderById(folderId); DriveApp.getFileById(newSS.getId()).moveTo(dstFolder); // 4. Retrieve URL of a new Spreadsheet. var url = newSS.getUrl(); Logger.log(url) }
  • Cuando se ejecuta este script, la hoja de origen se copia en una nueva hoja de cálculo. Y, en una nueva hoja de cálculo, se elimina la hoja vacía predeterminada. De esta manera, se obtiene una Hoja de cálculo que incluye la hoja específica.

Nota:

  • En este caso, si la hoja de origen incluye las fórmulas para cargar los valores de otra hoja, se produce un error. Tenga cuidado con esto. Y también, por ejemplo, cuando la hoja de origen incluye la función personalizada, creo que podría usarse el siguiente script.

     function Createcopy() { var sheetName = 'Review'; // Please set the source sheet name. var folderId = '###'; // Please set the destination folder ID. var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(sheetName); var title = sheet.getRange(1, 4).getValue(); // New Spreadsheet title. This is from your script. var dstFolder = DriveApp.getFolderById(folderId); var newSSFile = DriveApp.getFileById(ss.getId()).makeCopy(title, dstFolder); var newSS = SpreadsheetApp.open(newSSFile); newSS.getSheets().forEach(s => { if (s.getSheetName() != sheetName) newSS.deleteSheet(s); }); var url = newSS.getUrl(); Logger.log(url) }

Referencias:

  • crear (nombre)
  • copyTo(hoja de cálculo) de Class Sheet de Class SpreadsheetApp
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda