在循环写入表格数据时候加多一个数据图片的判断。
加入相对于的坐标位置即可。
处理图片的关键代码如下
if(obj[j].toString().contains(".png")||obj[j].toString().contains(".jpg")){ row.setHeight((short)1000);// 设置行高 byteArrayOut = new ByteArrayOutputStream(); try { //buffer_Img =ImageIO.read(new File(obj[j].toString())); URL urlfile =new URL(obj[j].toString()); //将文件转成字节流 InputStream inputStream = urlfile.openStream(); //加入图像缓冲区 BufferedImage buffer_Img =ImageIO.read(inputStream); // 写入 ImageIO.write(buffer_Img, "jpg", byteArrayOut); } catch (IOException e) { System.out.println("写入出错"); e.printStackTrace(); } //图片位置 col1 列下标 XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, obj.length-1, i+1, obj.length, i+2); anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_DONT_RESIZE); // 插入图片 patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_JPEG)); }