LibreOffice Calc, yerleşik StarBasic programlama dilini kullanarak kullanıcıların kendi işlevlerini oluşturmalarına olanak tanır. Bu dile çok benziyor VBA ancak nadiren kullanıldığı için sınırlı işlevselliğe sahiptir.
Python gibi modern programlama dilleri çok daha fazla olasılık sunar ve tüm durumlar için daha geniş bir ek kütüphane yelpazesine sahiptir.
Öyleyse, günümüzün popüler programlama dilini Python kullanarak kendi işlevinizi nasıl oluşturabileceğinizi öğrenelim.
Öncelikle makro ve fonksiyon yazmak için standart LibreOffice Calc araçlarını kullanarak kendi programınızı nasıl yazabileceğinizi hatırlayalım.
Fonksiyonun kodu aşağıdadır
Kendi işlevinizi eklemek için menüyü açın
Function Greeting(sName As String) As String Greeting = "Hello " & sName & "!" End Function
Daha sonra Macro Editor'yi kapatıp LibreOffice Calc'ye dönün ve bu fonksiyonun adını herhangi bir hücreye girin ve giriş parametresini belirtin.
Python'de bir fonksiyon yazmadan önce, öncelikle bir *.py dosyası oluşturmamız gerekiyor (
%APPDATA%\LibreOffice\4\user\scripts\python
Eğer klasörler senaryolar Ve piton eksikse bunları manuel olarak oluşturmanız gerekir.
İşlev için Python betiği aşağıdadır
Bu betiği eklemek için dosyayı açın
def Greeting(sName):
return "Python say 'Hello' to " + sName + "!"
Sonra kapat
LO Calc arayüzünün Python fonksiyonlarıyla doğrudan bağlantısı olmadığından bu fonksiyonu hemen çalıştıramıyoruz.
Bu sorunu çözmek için StarBasic üzerinde bir ara fonksiyon oluşturmamız gerekiyor:
Function Greeting(sName As String) As String pyFile = "myPyScripts.py" pyFunc = "Greeting" pyParams = Array(sName) ScriptProvider = CreateUNOService("com.sun.star.script.provider.MasterScriptProviderFactory").createScriptProvider("") pyScript = ScriptProvider.getScript("vnd.sun.star.script:" & pyFile & "$" & pyFunc & "?language=Python&location=user") Greeting = pyScript.invoke(pyParams, Array(), Array()) End Function
Bu ara işlevi StarBasic makro düzenleyicisine ekleyin (menü
Şimdi StarBasic işlevini çağırın
Ayrıca hazır bir set de kullanabilirsiniz. işlevler Ve fayda üzerine yazılmış
Bundan sonra bu işlevsellik LibreOffice Calc'de açılacak tüm dosyalarda mevcut olacaktır.