usar una sheets hojas hoja hipervinculo google funcion docs definicion como caracteristicas calculo google-spreadsheet google-api spreadsheet google-spreadsheet-api google-sheets-api

google-spreadsheet - una - hoja de calculo google drive



Hipervínculo de hoja de cálculo de Google a una hoja específica (5)

La función HYPERLINK puede vincular a otra hoja en el mismo libro de trabajo; si observa la URL de la hoja de cálculo, al final de ella hay #gid=x donde x es único para cada hoja.

El problema es que abrirá la hoja como una nueva instancia de la hoja de cálculo en otra pestaña, lo que probablemente no sea deseable. La solución alternativa sería insertar imágenes o dibujos como botones y asignarles un script que active hojas específicas.

Me gustaría abrir una hoja específica de una hoja de cálculo de Google desde un hipervínculo en otra hoja de cálculo.

Tengo un enlace diferente en mi hoja de cálculo principal, y cada uno debe tener un hipervínculo a la misma hoja de cálculo esclava pero a una hoja diferente.

Conozco la función de hipervínculo pero no funciona con una hoja específica.

Gracias por la ayuda


Entonces, lo que entiendo del OP es que tienes una hoja maestra de cálculo que deseas que tenga enlaces a hojas individuales, donde una o más de esas hojas pueden estar en archivos de hojas de cálculo individuales o múltiples.

La función HYPERLINK solo convierte una URL en un hipervínculo y solo es útil cuando quiere tener hipertexto en lugar de solo un enlace. Si ingresas la URL en bruto como los datos, se convierte automáticamente en un hipervínculo, por lo que no hay trabajo adicional.

Como se menciona en otras respuestas, la solución es tener el URL de la hoja de cálculo y luego usar el valor de gid para calcular el enlace a la hoja deseada dentro de la hoja de cálculo. Puede escribir una aplicación simple que recoja todos los enlaces de las hojas individuales y las escriba en el máster.

A continuación se encuentran algunos fragmentos de pseudocódigo (Python) que pueden ayudarlo a comenzar. Voy a omitir todo el código de autenticación repetitivo, pero si lo necesitas, mira esta publicación de blog y este video . El código siguiente supone que su punto final del servicio API es SHEETS .

Esto lee una hoja de cálculo de destino para construir enlaces para cada una de sus hojas:

# open target Sheet, get all sheets & Sheet URL SHEET_ID = TARGET_SHEET_DRIVE_FILE_ID res = SHEETS.spreadsheets().get(spreadsheetId=SHEET_ID, fields=''sheets,spreadsheetUrl'').execute() sheets = res.get(''sheets'', []) url = res[''spreadsheetUrl''] # for each sheet, dump out its name & full URL for sheet in sheets: data = sheet[''properties''] print(''** Sheet title: %r'' % data[''title'']) print('' - Link: %s#gid=%s'' % (url, data[''sheetId'']))

En lugar de imprimir en la pantalla, digamos que los almacenó en una matriz de 2 tuplas (name, URL) en su aplicación, por lo que, al final, se parece a esta lista llamada sheet_data :

sheet_data = [ (''Intro'', ''https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=5''), (''XData'', ''https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=3''), (''YData'', ''https://docs.google.com/spreadsheets/d/SHEET_ID/edit#gid=7'') ]

Luego puede escribirlos en el maestro (comenzando desde la esquina superior izquierda, celda A1 ) de esta manera:

SHEET_ID = MASTER_SHEET_DRIVE_FILE_ID SHEETS.spreadsheets().values().update( spreadsheetId=SHEET_ID, range=''A1'', body={''values'': sheet_data}, valueInputOption=''USER_ENTERED'' ).execute()

Algunas advertencias al usar gid :

  • La primera hoja predeterminada creada para usted (Sheet1) siempre tiene un gid=0 .
  • Cualquier hoja que agregue después de eso tendrá un gid aleatorio.
  • No gid=0 en un gid=0 para la primera hoja en sus hojas de cálculo, sin embargo, ya que usted u otra persona puede haber eliminado la hoja predeterminada original, como mi ejemplo anterior.

Si desea ver más ejemplos del uso de Sheets API, aquí hay más videos que he hecho (junto con publicaciones que profundizan en cada muestra de código):

Luego, cuando abre el maestro en la IU de Sheets, puede hacer clic en cualquiera de las hojas individuales, independientemente de en qué archivos de hojas de cálculo se encuentren. Si desea que otras aplicaciones o secuencias de comandos las abran automáticamente, la mayoría de los lenguajes de programación ofrecen a los desarrolladores una formas de lanzar un navegador web dada la URL objetivo. En Python, sería el módulo webbrowser ( docs ):

import webbrowser webbrowser.open_new(url) # or webbrowser.open_new_tab(url)


Puede usar esta función de script personalizado (Herramientas> Editor de scripts) y conectarlo, por ejemplo, con un dibujo personalizado (Insertar> Dibujo ...> Guardar y Cerrar, luego haga clic con el botón secundario en dibujo nuevo> Asignar script ...> "goToSheet2")

function goToSheet2() { goToSheet("Sheet2"); } function goToSheet(sheetName) { var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName); SpreadsheetApp.setActiveSheet(sheet); }

Actualizar:
En la versión más nueva, puede seleccionar la celda y agregar el enlace (Insertar> Enlace) y seleccionar el enlace a la hoja específica directamente:


Personalmente hice esto en base a lo que dijo @rejthy: en los scripts creé esta función:

/** * Return the id of the sheet. (by name) * * @return The ID of the sheet * @customfunction */ function GET_SHEET_ID(sheetName) { var sheetId = SpreadsheetApp.getActive().getSheetByName(sheetName).getSheetId(); return sheetId; }

y luego en mi hoja donde necesito el enlace hice esto: =HYPERLINK("#gid="&GET_SHEET_ID("Factures - "&$B$1);"Année en cours")


Alternativamente, puedes intentar crear una función personalizada. Con la hoja de cálculo abierta, haz clic en el menú Herramientas , luego en Editor de scripts ... Pega el código en el editor:

/** * Gets the Sheet ID from Sheet Name * * @param {string} input The Sheet Name * @return The Sheet ID * @customfunction */ function SHEETID(input) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var tab = ss.getSheetByName(input); return tab.getSheetId(); }

Guarde, actualice la hoja de cálculo y luego escriba su función personalizada

=SHEETID("Your Custom Sheet Name") =SHEETID(A1)

¡Y voilá! Se genera la ID única para la pestaña (en la hoja de cálculo actual). Puede hacer un hipervínculo utilizando la siguiente fórmula:

=HYPERLINK("#gid="&SHEETID(A1),"Link")