本文介紹通過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添加效果:

(本文完)
