package com.appdev.test; import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFPicture; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class ImageToExcel { public static void main(String args[]) { String fileUrl = "D:/123.xls"; try { //创建输入流,读取Excel File file = new File(fileUrl); BufferedInputStream in = new BufferedInputStream(new FileInputStream(file)); POIFSFileSystem fs = new POIFSFileSystem(in); //获取excel的sheet HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); //把图片流读取到字节流 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); BufferedImage bufferImg = ImageIO.read(new File("D:/image002.gif")); ImageIO.write(bufferImg, "jpg", byteArrayOut); //HSSFClientAnchor控制图片的大小和位置 HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255, (short) 2, 5, (short) 4, 6); anchor.setAnchorType(2); //HSSFPatriarch对流进行操作 HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); HSSFPicture pict = patriarch.createPicture(anchor, wb.addPicture(byteArrayOut .toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); //图片自适应 pict.resize(); FileOutputStream fileOut = null; fileOut = new FileOutputStream(fileUrl); wb.write(fileOut); } catch (IOException e) { e.printStackTrace(); } } }
POI插入图片到excel
猜你喜欢
转载自i5252592.iteye.com/blog/2195218
今日推荐
周排行