2016-04-14 23 views
1

私はこれについてユーザーフレンドリーなチュートリアルをしばらく検索していましたが、運がありません。LibreOffice用のPythonマクロ - 文字列内の文字列を置き換えます。

PythonでLibreOffice用のマクロを書きたいと思います。これは、Writerの現在開いているドキュメントの文字列を置き換えます。驚いたことに、開発者やユーザーからの公式のガイド、ドキュメンテーション、または例がないようです。

私が知る必要があるのはどのようにして現在開いているドキュメントのテキストにPythonでアクセスして変更できますか??作業例は素晴らしいですが、どんな助けも大歓迎です。次のように

答えて

3

簡単な "Hello World" の例は次のとおりです。

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を参照してください。

テキストの検索および置換方法は、要件によって異なります。 1回またはすべてのオカレンスを交換しますか?通常のテキストや、表、フレーム、ヘッダーなどの要素に置き換えますか?大文字と小文字を区別するか、正規表現か? Basicの例については、Andrew Pitonyak's macro documentのセクション7.14を参照してください。ここで

は「に変更」する「を検索」のすべての出現を変更するPythonで作業例です。

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

あなたは私のヒーローです;)コードが約束どおりに動作しますが、あなたが提供されたリンクだけでなく、素晴らしいです!どうもありがとうございました! – lsrom

関連する問題