Есть ли хорошие рекомендации по использованию OLE Automation (из Java)? - PullRequest
2 голосов
/ 04 февраля 2009

Я пытаюсь связаться с Excel из приложения Java / SWT. Мне удалось открыть рабочий лист, открыть файл и сохранить его, но это все.

Может кто-нибудь указать мне некоторые документы / примеры для этого? Мне особенно нужно знать, какие команды доступны. Я пытался записать макросы для проверки. Это было полезно, но не дало мне все, что я хотел.

Это пример того, что я пробовал до сих пор:

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 ]

2 голосов
/ 29 декабря 2009

Используйте VBA справку MSOffice. Также вы можете использовать Object Browser в редакторе VB Office.

1 голос
/ 04 февраля 2009

Не документация, но поскольку вы спрашивали о доступных командах с помощью автоматизации: пробовали ли вы средство просмотра объектов OLE / COM, входящее в комплект ресурсов Windows 2000? Скачать здесь .

...