本文介紹經過Java程序添加OLE對象到Excel文檔。OLE分爲兩種形式,一種經過嵌入(Embed),方式,一種經過連接(Link)方式。前者是將對象嵌入到文檔中,外部對該對象的更改不影響嵌入操做時的對象;後者是以連接形式來保存對象,外部任何對該對象的更改都會影響文檔。這裏的對象,支持多種不一樣類型(以下圖),如PDF、Word、Excel、PPT等常見格式的文檔類型。html
本文中的Java代碼示例以Word文檔爲對象經過嵌入方式添加到Excel工做表的指定單元格,代碼可供參考。java
工具:Free Spire.Office for Java (免費版)maven
注:jar文件獲取可經過官網下載,並解壓將lib文件夾下的Spire.Office.jar導入java程序,也可經過maven倉庫下載並導入。工具
jar導入效果以下:url
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添加效果:spa
(本文完).net