Java 添加OLE對象到Excel文檔


本文介紹通過Java程序添加OLE對象到Excel文檔。OLE分為兩種形式,一種通過嵌入(Embed),方式,一種通過鏈接(Link)方式。前者是將對象嵌入到文檔中,外部對該對象的更改不影響嵌入操作時的對象;后者是以鏈接形式來保存對象,外部任何對該對象的更改都會影響文檔。這里的對象,支持多種不同類型(如下圖),如PDF、Word、Excel、PPT等常見格式的文檔類型。

本文中的Java代碼示例以Word文檔為對象通過嵌入方式添加到Excel工作表的指定單元格,代碼可供參考。

工具:Free Spire.Office for Java (免費版)

注:jar文件獲取可通過官網下載,並解壓將lib文件夾下的Spire.Office.jar導入java程序,也可通過maven倉庫下載並導入

jar導入效果如下:

Java 代碼示例

import com.spire.doc.documents.ImageType;
import com.spire.xls.*;
import com.spire.xls.core.IOleObject;
import com.spire.doc.Document;

import java.awt.*;
import java.awt.image.BufferedImage;

public class AddOLE {

    public static void main(String[] args) {
        //加載excel文檔
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

        //獲取第一個工作表
        Worksheet sheet = wb.getWorksheets().get(0);

        //獲取Word文檔圖片
        String docx = "sample.docx";
        BufferedImage image = GetWordImage(docx);

        //插入OLE到工作表指定單元格
        IOleObject oleObject = sheet.getOleObjects().add(docx,image,OleLinkType.Embed);//插入指定類型的OLE
        oleObject.setLocation(sheet.getCellRange("A1"));//指定單元格
        oleObject.setObjectType(OleObjectType.WordDocument);//指定OLE對象類型(這里可支持多種類型)

        //保存文檔
        wb.saveToFile("AddOLE.xlsx",ExcelVersion.Version2010);
        wb.dispose();
    }
    //定義一個GetWordImage(string docxFile) 方法獲取圖片,這里的圖片來自於Word文檔中的數據信息圖像,將OLE對象插入到Excel工作表后,這個圖像將顯示在Excel工作表中
    static  BufferedImage GetWordImage(String docxFile)
    {
        //加載Word文檔
        Document doc = new Document();
        doc.loadFromFile(docxFile);

        //將Word文檔的第一頁保存為圖片
        Image olePicture = doc.saveToImages(0, ImageType.Bitmap);
        return (BufferedImage) olePicture;
    }
}

OLE添加效果:

 

(本文完)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM