使用wscript(vbs)操控OpenOffice自动化

需积分: 10 2 下载量 6 浏览量 更新于2024-09-15 收藏 272KB PDF 举报
本文主要探讨了如何使用WScript(Visual Basic Script)来控制开源办公软件OpenOffice,以替代传统的Microsoft Office进行报表生成。作者在研究了OpenOffice的自动化桥接技术文档后,发现现有的教程存在一些问题,因此通过录制OpenOffice的宏并进行实践,尝试创建了一个基本的控制流程。 在Windows操作系统(包括95, 98, NT4, ME, 2000, XP)上,可以通过以下步骤快速入门OpenOffice的VBS控制: 1. 对于`calc`(OpenOffice的电子表格程序): - 首先,通过`CreateObject`函数实例化`ServiceManager`对象,这通常是OpenOffice组件之间的通信起点。 - 然后,创建`Desktop`对象,这是OpenOffice的顶级容器,可以用来打开、保存或加载文档。 - 使用`loadComponentFromURL`方法打开一个新的电子表格(scalc)文档,并指定空白窗口("_blank")。 - 访问第一个工作表(Sheets数组的第一个元素),然后设置单元格的值和字符串。 示例代码: ```vb Set oSM = CreateObject("com.sun.star.ServiceManager") Set oDesktop = oSM.createInstance("com.sun.star.frame.Desktop") Dim aArgs() Set oDoc = oDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, aArgs) Set oSheet = oDoc.getSheets().getByIndex(0) oSheet.getCellByPosition(0, 0).SetValue(1000.32) oSheet.getCellByPosition(0, 1).SetString("abc") ``` 2. 对于`writer`(OpenOffice的文字处理程序): - 类似于`calc`,首先需要实例化`ServiceManager`和`Desktop`对象。 - 但值得注意的是,在VB中,对于OpenOffice API的使用可能需要特定的初始化步骤,例如文中提到的“`InstanciateOOo`”。 虽然这里没有提供完整的`writer`部分的代码,但基本思路与`calc`相似,只是会操作不同的对象,如创建文本、段落等。 通过WScript和VBScript,开发者可以利用OpenOffice的自动化接口实现对OpenOffice组件的编程控制,从而在报表生成、数据处理等方面作为Microsoft Office的替代方案。然而,需要注意的是,由于不同版本的OpenOffice和可能存在的兼容性问题,实际应用时可能需要进行一些调整和测试。此外,文档和教程的不足可能需要开发者自己探索和记录解决方案。