PyUNO kütüphanesi ile makro yazalım
LibreOffice için Python kullanarak betik yazılabiliyor.
Bu derste Python ile ofis yazılımı için ilk betiği nasıl yazabileceğimizi anlatmaya çalışıyoruz.
Ubuntu tabanlı dağıtımlarda aşağıdaki paketi kurmak gerekebilir.
sudo apt install libreoffice-script-provider-python
ArcoLinux dağıtımında uno.py kütüğünü aradık.
locate uno.py
Aşağıdaki gibi çıktı verdi.
/usr/lib/libreoffice/program/uno.py
/usr/lib/python3.12/site-packages/uno.py
Sonra bu kütüğe çalıştırma izni verdik.
sudo chmod +x /usr/lib/libreoffice/program/uno.py
Bu kütüğün bulunduğu dizini aşağıdaki gösterildiği gibi ortam değişkeni olarak ekliyoruz.
Eğer fish kabuğu kullanıyorsanız ~/.config/fish/config.fish kütüğüne, eğer bash kullanıyorsanız ~/.bashrc kütüğüne aşağıdaki ortam değişkenini ekleyiniz.
export PYTHONPATH="$PYTHONPATH:/usr/lib/libreoffice/program/"
Ekledikten sonra bilgisayarı tekrar başlatınız.
Python makrolarının çalışıp çalışmadığını sınamak için LibreOffice yazılımında Araçlar -> Makrolar -> Makroları Yönet -> Python yolunu izleyiniz.
Buradan Uygulama Makroları -> HelloWorld -> HelloWordPython'u seçerek çalıştır tuşuna basınız.
Eğer yeni bir yazı kütüğü açıldı ve içine bir şeyler yazıldı ise Python çalışıyor demektir.
Linux altında dizin
/home/KULLANICI/.config/libreoffice/4/user/Scripts/python
Windows için
%APPDATA%\LibreOffice\4\user\Scripts\python
macOS için
~/Library/Application Support/LibreOffice/4/user/Scripts/python/
şeklindedir.
Linux için KULLANICI yerine kendi kullanıcı isminiz gelecek.
Eğer Scripts/python dizini yoksa oluşturunuz.
Belirtilen dizinde selam.py ismi ile bir kütük oluşturup içine aşağıdaki bilgileri giriniz.
import uno
def selamVer():
belge = XSCRIPTCONTEXT.getDocument()
hücre = belge.Sheets[0]['A1']
hücre.setString("Selâmun Aleyküm")
return
Makroyu çalıştırmak için Araçlar->Makrolar->Makro Çalıştır yolunu izleyiniz.
Makrolarım isimli kütüphaneden selam ve selamVeri seçip sonra da Çalıştır düğmesine basınız.
Makro çalıştığında A1 hücresine Selâmun Aleyküm yazması gerekiyor.
Yorumlar