如何使用Word Ole Automation列出集合的项目

时间:2013-06-17 10:59:59

标签: java ms-word ole

我正在使用SWT OLE api在Eclipse RCP中编辑Word文档。我阅读了有关如何从活动文档中读取属性的文章,但现在我遇到了像部分这样的集合的问题。

我只想检索文档的body部分,但我不知道如何处理我的section对象,它是一个IDispatch对象。我读过应该使用item方法,但我不明白。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,所以我会与你分享:)

以下是列出单词编辑器活动文档的所有段落的示例代码:

    OleAutomation active = activeDocument.getAutomation();
    if(active!=null){
    int[] paragraphsId = getId(active, "Paragraphs");
    if(paragraphsId.length > 0) {
        Variant vParagraphs = active.getProperty(paragraphsId[0]);
        if(vParagraphs != null){
            OleAutomation paragraphs = vParagraphs.getAutomation();
            if(paragraphs!=null){
                int[] countId = getId(paragraphs, "Count");
                if(countId.length > 0) {
                    Variant count = paragraphs.getProperty(countId[0]);
                    if(count!=null){
                        int numberOfParagraphs = count.getInt();
                        for(int i = 1 ; i <= numberOfParagraphs ; i++) {
                            Variant paragraph = paragraphs.invoke(0, new Variant[]{new Variant(i)});
                            if(paragraph!=null){
                                System.out.println("paragraph " + i + " added to list!");
                                listOfParagraphs.add(paragraph);
                            }
                        }
                        return listOfParagraphs;
                    }
                }
            }
        }
    }