public void addPictrue(String imgPath,HSSFSheet sheet, HSSFWorkbook wb){
BufferedImage bufferImg = null;
//先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
try {
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
bufferImg = ImageIO.read(new File(imgPath));
//这里要注意,第二个参数将会决定插入图片形式,如果是一个png的图片,背景透明,但是此处设置为jpg格式将会自动添加黑色背景
ImageIO.write(bufferImg, "png", byteArrayOut);
//画图的顶级管理器,一个sheet只能获取一个
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
//anchor主要用于设置图片的属性
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255,(short) 9, 0, (short) 11, 0);
anchor.setAnchorType(2);
//插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
} catch (Exception e) {
e.printStackTrace();
}finally{
}
}
public void addPictrue2(String imgPath,HSSFWorkbook wb,HSSFSheet sheet){
InputStream is;
byte[] bytes;
try {
is = new FileInputStream(imgPath);
bytes = IOUtils.toByteArray(is);
int pictureIdx = wb.addPicture(bytes, wb.PICTURE_TYPE_PNG);
CreationHelper helper = wb.getCreationHelper();
Drawing drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
// 图片插入坐标
anchor.setCol1(9);
anchor.setRow1(0);
anchor.setCol2(11);
anchor.setRow2(0);
// 插入图片
Picture pict = drawing.createPicture(anchor, pictureIdx);
pict.resize();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
之前经不同地方都很难找到方法,在此做记录,以便以后方便使用!