/** * 向Excel中插入图片,读取图片的绝对路径 */ public static void insertPicture(HSSFSheet sheet, int row, Short col1, short col2, String imagePath) { //插入图片 FileOutputStream fileOut = null; BufferedImage bufferImg = null; //先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray try { ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); // 读取文件绝对路径 bufferImg = ImageIO.read(new File(imagePath)); ImageIO.write(bufferImg, "jpg", byteArrayOut); HSSFWorkbook wb = sheet.getWorkbook(); HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, col1, row, col2, row); anchor.setAnchorType(3); patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)) .resize(1); fileOut = new FileOutputStream("excel_put_picture"); // 写入excel文件 wb.write(fileOut); } catch (Exception e) { e.printStackTrace(); } finally { if (fileOut != null) { try { fileOut.close(); } catch (IOException e) { e.printStackTrace(); } } } }
参考: