我一直在寻找一些用户友好的教程,但没有运气。
我想在Python中为LibreOffice编写一个宏,它将替换Writer中当前打开的文档中的字符串。令人惊讶的是,似乎没有来自开发人员或用户的任何官方指南,文档甚至示例。
我需要知道的是,我如何在Python中访问当前打开文档的文本并进行更改?工作示例很棒,但是非常感谢任何帮助。
答案 0 :(得分: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。
如何搜索和替换文本取决于您的要求。替换一次或所有事件?用普通文本替换,还是用表格,框架或标题等元素替换?区分大小写,或者正则表达式?有关基本的示例,请参阅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")