Czy mogę używać Javascript do pisania niestandardowej funkcji dla Numbers?


8

Zawsze denerwuje mnie, że nie mogę napisać niestandardowej funkcji dla Numbers. Dzięki temu arkusz kalkulacyjny byłby dla mnie o wiele bardziej przydatny. W arkuszach kalkulacyjnych Google Apps możesz to zrobić za pomocą Javascript.

Innymi słowy, piszesz

function myCustomStuff(a, b) { ... }

a komórka może zawierać:

=myCustomStuff(A1, B2)

Teraz w Yosemite mają automatyzację Javascript. Zastanawiam się, czy to możliwe.

Odpowiedzi:


2

Nie - wstrzyknięcie funkcji wygląda na coś, co nie jest łatwe do skryptu.

Proste makro może być wykonalne i możesz zacząć od tych dwóch referencji:

Ten link jest dokumentacją dla programistów dotyczącą podłączania skryptu do aplikacji Numbers.

Ta strona automatyzacji przez długi czas była najlepszym miejscem, w którym mogłem się uczyć i wdrażać narzędzia AppleScript.

Jeśli jesteś nowy, możesz postępować zgodnie z samouczkiem liczb w AppleScript, aby upewnić się, że wykonasz zadanie, a następnie ponownie go zakodować w nowym języku. Następnie musisz określić haczyki w Numbers i sprawdzić, czy twoje konkretne zadanie jest wykonalne bez użycia mostu Objective-C, który umożliwia integrację niższego poziomu z aplikacjami w OS X.


Przejrzałem bibliotekę skryptów Numbers i nie widzę żadnego sposobu, aby zarejestrować nazwaną funkcję do użycia w równaniach. Możesz uruchomić obliczenia dla kilku komórek i wypełnić inne komórki. To mi pomaga, ale nie do końca tego chciałem.
Rob N

@RobN Zamierzam odwrócić moje tak - nie widziałem żadnego sposobu na osadzenie funkcji i miałem nadzieję, że to możliwe, ale na pewno wygląda na to, że będziesz musiał zrobić coś bardzo ciężkiego, jak programowanie rozszerzenia systemu / zamiatanie metod w Numbers w celu wstrzyknięcia funkcji.
bmike

Fajne. Zaakceptowałem twoją odpowiedź i złożyłem prośbę o dodanie funkcji do Apple. Może kiedyś.
Rob N
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.