2016-04-14 36 views
1

Kullanıcı dostu bir eğitici için bununla biraz uğraştım ama şanssız.LibreOffice için Python makrosu - metindeki dizgeyi değiştirin

Wipe'da açık olan belgede dizenin yerini alacak olan LibreOffice için Python'da bir makro yazmak istiyorum. Şaşırtıcı bir şekilde, geliştiricilerden veya kullanıcılardan herhangi bir resmi rehber, dokümantasyon veya örnek gibi görünmemektedir.

Bilmem gereken şey, Python'da şu anda açık olan belgenin metnine nasıl erişebilir ve onu değiştirebilirim? Çalışma örneği harika olurdu ama herhangi bir yardım çok takdir ediliyor. aşağıdaki gibi

cevap

3

Basit bir "Merhaba Dünya" örneğidir:

def hello(): 
    XSCRIPTCONTEXT.getDocument().getText().setString("Hello!") 

# Functions that can be called from Tools -> Macros -> Run Macro. 
g_exportedScripts = hello, 

https://wiki.openoffice.org/wiki/Python/Transfer_from_Basic_to_Python bakınız.

Metin nasıl aranır ve değiştirilir, gereksinimlerinize bağlıdır. Bir kez mi yoksa tüm oluşumlar mı değiştirilsin? Normal metinde veya ayrıca tablolar, çerçeveler veya üstbilgiler gibi elemanlarda mı değiştirilsin? Büyük/küçük harfe duyarlı veya belki de normal ifadeler? Basic'deki örnekler için bkz. Bölüm 7.14, Andrew Pitonyak's macro document. ;) Sadece söz verdiği gibi kod çalışır ancak bağlantı sağladığınız Sen benim kahramanımsın

document = XSCRIPTCONTEXT.getDocument() 
search = document.createSearchDescriptor() 
search.SearchString = "search for" 
search.SearchAll = True 
search.SearchWords = True 
search.SearchCaseSensitive = False 
selsFound = document.findAll(search) 
if selsFound.getCount() == 0: 
    return 
for selIndex in range(0, selsFound.getCount()): 
    selFound = selsFound.getByIndex(selIndex) 
    selFound.setString("change to") 
+0

: Burada

için "değişim için" "için arama" tüm tekrarlarını değiştirir Python bir çalışma örneğidir de harika! Çok teşekkür ederim! – lsrom