是否有使用OLE自动化(来自Java)的良好参考?

时间:2009-02-04 08:25:22

标签: java automation ole

我正在尝试从Java / SWT应用程序与Excel通信。我已经能够打开一个工作表,打开一个文件并保存它,但这就是它。

有人能指出一些文档/示例吗?我特别需要知道哪些命令可用。我确实尝试记录宏来检查。这很有用,但没有给我我想要的一切。

这是我到目前为止所尝试的一个示例:

private static OleAutomation openFile(
        OleAutomation automation, String fileName) {
    Variant workbooks = automation.getProperty(0x0000023c);// get User
                                                            // Defined
                                                            // Workbooks
    Variant[] arguments = new Variant[1];

    arguments[0] = new Variant(fileName);
    System.out.println("workbooks::\t" + workbooks);

    IDispatch p1 = workbooks.getDispatch();
    int[] rgdispid = workbooks.getAutomation().getIDsOfNames(new String[] { "Open" });
    int dispIdMember = rgdispid[0];
    Variant workbook = workbooks.getAutomation().invoke(dispIdMember, arguments);
    System.out.println("Opened the Work Book");
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    int id = workbook.getAutomation().getIDsOfNames(new String[] { "ActiveSheet" })[0];
    System.out.println(id);
    Variant sheet = workbook.getAutomation().getProperty(id);
    OleAutomation sheetAutomation = sheet.getAutomation();

    return (sheetAutomation);
}

2 个答案:

答案 0 :(得分:2)

使用VBA帮助MSOffice。您也可以在Office的VB编辑器中使用对象浏览器。

答案 1 :(得分:1)

不是文档,但是由于您通过自动化询问了可用的命令:您是否尝试过Windows 2000资源工具包附带的OLE / COM对象查看器?下载here