本文介绍使用spire.office for java添加ole对象到excel文档的方法。ole分为两种形式,一种通过嵌入(embed),方式,一种通过链接(link)方式。前者是将对象嵌入到文档中,外部对该对象的更改不影响嵌入操作时的对象;后者是以链接形式来保存对象,外部任何对该对象的更改都会影响文档。
import com.spire.xls.*;
import com.spire.xls.core.ioleobject;
import com.spire.doc.document;
import com.spire.doc.documents.imagetype;
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);//插入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添加效果: