使用 VB 或 python 编写 OpenOffice 表单脚本
我正在尝试编写我的 OpenOffice 文档(在我的例子中为 Writer)的脚本来使用小部件执行一些简单的操作。也就是说,我想将文本从一个小部件复制到另一个小部件。为此,我想获取一个组件,然后从中获取文本。
我一直在尝试这样做:
document = ThisComponent.CurrentController.Frame
oDocument = ThisComponent
oTextBoxFrom = document.getByName("Text Box 1") # 1
oTextBoxFrom = oDocument.getByName("Text Box 1") # 2
版本 #1 和版本 #2 都不起作用。 VB 编译器指出“文本框 1”不可访问,但我的表单中有该组件。我的猜测是我试图从错误的地方获取这个组件,例如。不是它的框架。我只是无法弄清楚该文档的结构是什么。
这似乎是一个非常简单的任务,但是我找不到任何关于从 VB 或 python 访问 OO UNO 对象的 OpenOffice 规范。
I'm trying to script my OpenOffice document (Writer in my case) to do some simple things with widgets. Namely I'd like to copy text from widget to widget. For this I want to get one component and than get text from it.
I've been trying to do sth like this:
document = ThisComponent.CurrentController.Frame
oDocument = ThisComponent
oTextBoxFrom = document.getByName("Text Box 1") # 1
oTextBoxFrom = oDocument.getByName("Text Box 1") # 2
Neither version #1 nor #2 work. VB compiler spits out that "Text Box 1" is not accessible, however I have that component in my form. My guess is that I'm trying to get this component from a wrong place, eg. not it's frame. I just can't figure out what is the structure of the document.
This seems like a pretty easy task, however I'm unable to find any OpenOffice specification as for accessing OO UNO objects from VB, or python.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(2)
我没有 openoffice 脚本编写的经验,但我找到了这些示例,请注意,它们从不在文档本身上使用 getByName ,但总是在文档的某些部分上使用 getByName 。
docCalc = ThisComponent
maFeuille = docCalc.Sheets.getByName("leCSV")
....
for f = 0 to lesFamilles.Count -1' chaque famille
nomFam = lesFamilles.ElementNames(f)
uneFamille = lesFamilles.getByName(nomFam)
...
monDocument.TextTables.hasByName("Finances")
...
lesSections = monDocument.TextSections
sectA = lesSections.getByName("Aline")
您可以在 http://oqei.free.fr/echange 找到此大型 pdf 中的其余部分/VBA/Programmation_OpenOffice_org_3_ed1_v1.pdf,它是法语,但代码是通用的,是吗?
希望有帮助..
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
再会。
如果你选择使用VB,你必须知道这一点:
如果是 python:
Python UNO 桥
更新:oooblogger 可能会帮助您了解 python 和 uno 集成。
Good day.
if you choose use a VB, you must know this:
if it will be python:
Python UNO bridge
upd: ooobloger might help you with understanding of python and uno integration.