JAVA通過COM介面操作PPT

來源:互聯網
上載者:User

標籤:java   com   ppt   powerpoint   

一、 背景說明

在Eclipse環境下,開發JAVA代碼操作PPT,支援對PPT模板的修改。包括修改文字標籤、圖表、表格。滿足大多數軟體產生PPT報告的要求,即先收工建立好模板,在程式中修改模板資料。

二、 開發環境搭建

下載jacob開源組件,解壓後把jacob.jar添加到項目中。拷貝對應的dll檔案到Path路徑下。32位系統採用X86的dll, 64位系統採用X64的dll。

三、 實現合并PPT函數1.1 合并PPT
    /**     * 合并多個PPT檔案。要求輸出檔案和合并檔案均已存在,不建立新檔案。     * @param outPutPPTPath 合并後輸出的檔案路徑。     * @param mergePPTPathList 依次追加合并的檔案。     */    public synchronized static void merge(String outPutPPTPath, List<String> mergePPTPathList)    {        // 啟動 office PowerPoint程式        ActiveXComponent pptApp = new ActiveXComponent("PowerPoint.Application");        Dispatch.put(pptApp, "Visible", new Variant(true));           Dispatch presentations = pptApp.getProperty("Presentations").toDispatch();          // 開啟輸出檔案        Dispatch outputPresentation = Dispatch.call(presentations, "Open", outPutPPTPath, false,                  false, true).toDispatch();        // 迴圈添加合并檔案        for (String mergeFile : mergePPTPathList)        {            Dispatch mergePresentation = Dispatch.call(presentations, "Open", mergeFile, false,                 false, true).toDispatch();            Dispatch mergeSildes = Dispatch.get(mergePresentation, "Slides").toDispatch();            int mergePageNum = Dispatch.get(mergeSildes, "Count").toInt();            // 關閉合并檔案            Dispatch.call(mergePresentation, "Close");            Dispatch outputSlides = Dispatch.call(outputPresentation, "Slides").toDispatch();            int outputPageNum = Dispatch.get(outputSlides, "Count").toInt();            // 追加待合并檔案內容到輸出檔案末尾            Dispatch.call(outputSlides, "InsertFromFile", mergeFile, outputPageNum, 1, mergePageNum);        }        // 儲存輸出檔案,關閉退出PowerPonit.        Dispatch.call(outputPresentation, "Save");        Dispatch.call(outputPresentation, "Close");        Dispatch.call(pptApp, "Quit");    }
1.2 調用測試代碼
public static void main(String[] args) throws OpenXML4JException, IOException, XmlException     {               String outPutPPTPath = "D:\\TEMP\\template\\1.pptx";        List<String> mergePPTPathList = new ArrayList<String>();        mergePPTPathList.add("D:\\TEMP\\template\\2.pptx");        mergePPTPathList.add("D:\\TEMP\\template\\3.pptx");        MergePPT.merge(outPutPPTPath, mergePPTPathList);;    }

JAVA通過COM介面操作PPT

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.