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 selamVer
i 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