0 votos

Utilizando AppleScript, ¿cómo se puede crear un enlace clicable a un sitio web en una celda de Numbers?

Estoy haciendo un trabajo de automatización utilizando Numbers para hacer un seguimiento de las visitas a la página web.

Mi test script es algo así como lo siguiente:

set myURL to "https://mywebpage.com"
tell application "Numbers"
   tell table 1 of sheet 1 of document 1
      add row below last row
      tell last row
         set value of first cell to current date
         set value of second cell to myURL
         -- Here I want to tell the second cell to make itself a link to a Webpage
      end tell
   end tell
end tell

He intentado utilizar la automatización de la interfaz de usuario para seleccionar el menú "Formato > Añadir enlace > Página web", pero ese elemento del menú sólo se activa si el texto de la celda está seleccionado.

Así que supongo que, a menos que haya una forma mejor de hacer que el valor sea un enlace, la cuestión puede ser cómo seleccionar el texto dentro de una celda.

Gracias

1voto

user3439894 Puntos 5883

En primer lugar, añada un activate comando a la tell application "Numbers" bloque así que Números está en primer lugar, y después de la tell application "Numbers" bloque añade lo siguiente:

Ejemplo AppleScript código :

tell application "System Events"
    keystroke return using option down
    keystroke "a" using command down
    keystroke "k" using command down
    keystroke return
end tell

Esto hará que la atención se centre en el último cell modificado, en este caso el de la URL y seleccione el texto y hacer que sea un enlace .

Notas:

El ejemplo AppleScript código que se muestra a continuación, y el código en el OP se probó en Script Editor en MacOS Catalina con Lengua y región ajustes en Preferencias del sistema ajustado a Inglés (EE.UU.) - Primaria y me ha funcionado sin problemas 1 .

  • 1 Asume los ajustes necesarios y apropiados en <strong>Preferencias del sistema </strong>> <strong>Seguridad y privacidad </strong>> <strong>Privacidad </strong>se han fijado/abordado según las necesidades.

Si es necesario, añada un delay comando entre el keystroke comandos Por ejemplo: delay 0.1

Otro método es hacer un manipulador y utilizarlo como en este ejemplo:

Ejemplo AppleScript código :

set myURL to "https://mywebpage.com"
tell application "Numbers"
    tell table 1 of sheet 1 of document 1
        add row below last row
        tell last row
            set value of first cell to current date
            set value of second cell to myURL
        end tell
    end tell
    activate
    my makeWebpageLink()
end tell

to makeWebpageLink()
    tell application "System Events"
        keystroke return using option down
        keystroke "a" using command down
        keystroke "k" using command down
        keystroke return
    end tell
end makeWebpageLink

1voto

Mockman Puntos 16

Applescript y Numbers no ofrecen realmente acceso a la selección de texto, pero parece que te sientes cómodo usando toda la celda para tu enlace. Mientras que el scripting de la UI puede resolver ese problema, la mayoría de las hojas de cálculo ofrecen funciones propias a las que applescript puede acceder.

Los números proporcionan una hyperlink función que permite crear un enlace en una celda y, opcionalmente, establecer el texto mostrado. He incluido código de ejemplo para ambas opciones y mostrar la función deseada.

La url debe incluir el protocolo (por ejemplo, https) y estar entre comillas. Como lo estás configurando en un applescript, las comillas deben ser escapadas.

set myURL to "https://help.apple.com/functions/mac/9.1/#/ffa596a1c7"
set myPageTitle to "Formulas and Functions Help" -- optional

tell application "Numbers"
    tell table 1 of sheet 1 of document 1

        set value of cell 1 of row 10 to "=hyperlink(\"" & myURL & "\")"
    --> HYPERLINK("https://help.apple.com/functions/mac/9.1/#/ffa596a1c7")

        set value of cell 1 of row 10 to "=hyperlink(\"" & myURL & "\",\"" & myPageTitle & "\")" -- with optional
    --> HYPERLINK("https://help.apple.com/functions/mac/9.1/#/ffa596a1c7","Formulas and Functions Help") -- contents of cell

        set alignment of cell 1 of row 10 to left

    end tell
end tell

Te dejo que resuelvas lo de añadir filas, etc. .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X