700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > poi3.17导出excel插入图片

poi3.17导出excel插入图片

时间:2020-05-29 19:13:26

相关推荐

poi3.17导出excel插入图片

excel插入图片Main方法测试:

public static void main(String[] args){BufferedImage bufferImg = null;try{//第一种方式: url地址bufferImg = ImageIO.read(new URL("/imgextra/i4/725677994/O1CN01Ks2zqb28vImTMarBt_!!725677994.jpg_43.jpg"));//第二种方式: 图片地址//bufferImg = ImageIO.read(new File("D://test.jpg"));}catch (Exception e){e.printStackTrace();}FileOutputStream fileOut = null;// BufferedImage bufferImg = null;//图片try {// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArrayByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();// 将图片写入流中ImageIO.write(bufferImg, "png", byteArrayOut);// 创建一个工作薄HSSFWorkbook wb = new HSSFWorkbook();//创建一个sheetHSSFSheet sheet = wb.createSheet("out put excel");// 利用HSSFPatriarch将图片写入EXCELHSSFPatriarch patriarch = sheet.createDrawingPatriarch();/*** 该构造函数有8个参数* 前四个参数是控制图片在单元格的位置,分别是图片距离单元格left,top,right,bottom的像素距离* 后四个参数,前连个表示图片左上角所在的cellNum和 rowNum,后天个参数对应的表示图片右下角所在的cellNum和 rowNum,* excel中的cellNum和rowNum的index都是从0开始的**///图片一导出到单元格B2中HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0,(short) 2, 0, (short) 3, 1);// 插入图片patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));//生成的excel文件地址fileOut = new FileOutputStream("D://123.xls");// 写入excel文件wb.write(fileOut);} catch (IOException io) {io.printStackTrace();System.out.println("io erorr : " + io.getMessage());} finally {if (fileOut != null) {try {fileOut.close();} catch (IOException e) {e.printStackTrace();}}}}

自己项目实际代码:

BufferedImage bufferedImage = null;try{//new URL("图片地址")bufferedImage = ImageIO.read(new URL(orderDetail.getSpecPic()));}catch (Exception e){}//解析图片不为空,才插入图片if(bufferedImage != null){ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();//将图片写入流中ImageIO.write(bufferedImage,"png",byteArrayOut);//图片导入到单元格中/*** 该构造函数有8个参数* 前四个参数是控制图片在单元格的位置,分别是图片距离单元格left,top,right,bottom的像素距离* 后四个参数,前连个表示图片左上角所在的cellNum和 rowNum,后天个参数对应的表示图片右下角所在的cellNum和 rowNum,* excel中的cellNum和rowNum的index都是从0开始的**/HSSFClientAnchor anchor = new HSSFClientAnchor(5, 5, 0, 0,(short) d, rowNum, (short) (d+1), rowNum+1);//插入图片patriarch.createPicture(anchor,wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));}

效果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。