TOP

LibreOffice Calc için Python üzerine bir makro yazıyoruz.

Tanım

LibreOffice Calc, kullanıcıların yerleşik programlama dili StarBasic'yi kullanarak kendi makrolarını 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 olanak sağlar ve her türlü duruma uygun daha geniş yelpazede ek kütüphanelere sahiptir.

Öyleyse, günümüzün popüler programlama dilini Python kullanarak kendi makrolarınızı nasıl oluşturabileceğinizi öğrenelim.


LibreOffice ofis programları paketi, Python, JavaScript, C++, Java gibi üçüncü taraf programlama dillerinde kendi makrolarınızı oluşturmanıza olanak tanır.

StarBASIC MerhabaDünya Kodu

Öncelikle makro yazmak için LibreOffice Calc standart araçlarını kullanarak kendi programınızı nasıl yazabileceğinizi hatırlayalım.

Makronun kodu aşağıdadır HelloWorld , bu ifadeyi belirtir "Hello World!" hücrede "B7" yerleşik programlama dili StarBasic'yi kullanarak.

Yeni bir makro eklemek için menüyü açın Tools - Macros - Edit Macros... , Module1 öğesini seçin ve aşağıdaki metni modüle kopyalayın:

Sub HelloWorld
    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    
    'REM "doc" it's a current LO Calc workbook (active worksheet)
    doc = CreateScriptService("Calc")
    doc.SetValue("B7", "Hello World!")
End Sub

Daha sonra Macro Editor'u kapatın, LibreOffice Calc'e dönün ve menü üzerinden yeni makromuzu çalıştırın. Tools - Macros - Run Macro...

Python Klasörü

Python üzerinde makro yazmadan önce bir *.py dosyası oluşturmamız gerekir (myPyScripts.py) aşağıdaki klasörde:

%APPDATA%\LibreOffice\4\user\scripts\python

Eğer klasörler senaryolar Ve piton eksikse bunları manuel olarak oluşturmanız gerekir.

Python HelloPython Kodu

Makro için Python betiği aşağıdadır HelloPython , bu ifadeyi belirtir "Hello Python!" hücrede "B8" LibreOffice Calc programında.

Yeni bir makro eklemek için dosyayı açın myPyScripts.py aracılığıyla Notepad++ (veya Windows Notepad) ve aşağıdaki metni buraya kopyalayın:

from scriptforge import CreateScriptService

def HelloPython():
    doc = CreateScriptService("Calc")
    doc.SetValue("B8", "Hello Python!")
    return None

Sonra kapat Notepad++ ve LibreOffice Calc'ye dönün. Bu komut dosyasını karıştırmak için menüyü açın Tools - Macros - Organise Macros - Python... , seçme "My Macros" , klasörü aç "myPyScripts" ve seçiyorum HelloPython düğmeye basın Run .

Python üzerinde StarBasic üzerinde verilen makroların yerleşik kitaplığı kullandığını unutmayın. ScriptForge . Bu kitaplık, tüm sistem işlevlerini "kaportanın altına" gizleyerek son kullanıcılar için makro yazmayı basitleştirir.

Uzantıyı kullanma

Ayrıca hazır bir set de kullanabilirsiniz. işlevler Ve fayda üzerine yazılmış Python uzantıyı yükleyerek YLC Utilities .

Bundan sonra bu işlevsellik LibreOffice Calc'de açılacak tüm dosyalarda mevcut olacaktır.