LibreOffice的Python宏-替换文本中的字符串

LibreOffice的Python宏-替换文本中的字符串,python,linux,scripting,libreoffice,Python,Linux,Scripting,Libreoffice,我已经搜索了一段时间的一些用户友好的教程,但没有运气 我想用Python为LibreOffice编写一个宏,它将替换Writer中当前打开的文档中的字符串。令人惊讶的是,无论是开发人员还是用户,似乎都没有任何官方指南、文档甚至示例 我需要知道的是,如何在Python中访问当前打开文档的文本并对其进行更改?工作示例非常好,但非常感谢任何帮助。一个简单的“Hello World”示例如下: def hello(): XSCRIPTCONTEXT.getDocument().getText()

我已经搜索了一段时间的一些用户友好的教程,但没有运气

我想用Python为LibreOffice编写一个宏,它将替换Writer中当前打开的文档中的字符串。令人惊讶的是,无论是开发人员还是用户,似乎都没有任何官方指南、文档甚至示例

我需要知道的是,如何在Python中访问当前打开文档的文本并对其进行更改?工作示例非常好,但非常感谢任何帮助。

一个简单的“Hello World”示例如下:

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

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

如何搜索和替换文本取决于您的要求。是否替换一次或全部事件?是否替换为普通文本,或替换为表格、框架或标题等元素?区分大小写,或者正则表达式?有关Basic中的示例,请参见中的第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")