1. 在sheet中特定位置插入图片
Excel插入图片步骤 :
画图的顶级管理器对象HSSFPatriarch, 一个sheet只能获取一个
创建一个新的客户端锚点HSSFClientAnchor
图片转换为字节流byte[]
向Excel中添加一张图片,返回图片在excel中的索引,base 1
创建图片
2.示例:
// patriarch负责在sheet中创建图片
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
/**
* 创建一个新的客户端锚点,附加到excel工作表,并设置左上角和右下角
*
* @param realX1 图片的左上角在开始单元格(col1,row1)中的横坐标
* @param realY1 图片的左上角在开始单元格(col1,row1)中的纵坐标
* @param realX2 图片的右下角在结束单元格(col2,row2)中的横坐标
* @param realY2 图片的右下角在结束单元格(col2,row2)中的纵坐标
* @param col1 开始单元格所处的列号, base 0, 图片左上角在开始单元格内
* @param row1 开始单元格所处的行号, base 0, 图片左上角在开始单元格内
* @param col2 结束单元格所处的列号, base 0, 图片右下角在结束单元格内
* @param row2 结束单元格所处的行号, base 0, 图片右下角在结束单元格内
* */
HSSFClientAnchor anchor = new HSSFClientAnchor(realX1, realY1, realX2, realY2, col1, row1, col2, row2);
// 图片字节流
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
byte[] imgtypes = byteArrayOut.toByteArray();
/*
* 在工作簿中添加一张图片,返回图片的索引,base 1
* @param pictureType 图片类型 PICTURE_TYPE_JPEG|PICTURE_TYPE_PNG
**/
int puctureIndex = workbook.addPicture(imgtypes, pictureType);
// 创建图片
patriarch.createPicture(anchor, puctureIndex);