@author YHC
添加图片:
image是drawing其中的一部分,添加图片需要调用createPicture(),在写入文件的时候需要注意,支持一下的类型:
PNG,JPG,DIB,应该值得注意的是,一旦你添加图片到这个工作簿中,任何现有的图片可能被擦除.
该示例所需jar,以及下载的地址和页面:
commons-codec-1.6.jar下载页面:
commons-codec-1.6-bin.zip点击直接下载:
下图就是该例子需要的jar以及图片放置的路径:
代码:
//创建Excel Workbook wb = new HSSFWorkbook(); //or new HSSFWorkbook(); //添加图片信息到这个Excel中 InputStream is = new FileInputStream("rose.jpg"); //读取图片文件得到字节 byte[] bytes = IOUtils.toByteArray(is); //向Excel添加一张图片,并返回该图片在Excel中的图片集合中的下标 int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG); //关闭流 is.close(); //工具类 CreationHelper helper = wb.getCreationHelper(); //创建工作簿 Sheet sheet = wb.createSheet(); //创建一个绘图对象 Drawing drawing = sheet.createDrawingPatriarch(); //添加一个图片 //创建锚点 ClientAnchor anchor = helper.createClientAnchor(); //设置图片的左上角 //接下来调用Picture#resize()设置图片相对于设置的左上角的位置 anchor.setCol1(3);//从0开始 第3列 anchor.setRow1(2);//从0开始 第2行 //根据锚点和图片下标创建并绘制一张图片 Picture pict = drawing.createPicture(anchor, pictureIdx); //相对于图片的左上角自动适应大小 //===========>>>>>>>>>[注意]<<<<<<================= //picture.resize() 仅仅只是针对这两种类型的图片 JPEG 和 PNG. //其他格式暂时不支持 pict.resize(); //写入文件 String file = "picture.xls"; FileOutputStream fileOut = new FileOutputStream(file); wb.write(fileOut);
如果以上有书写或者理解错误的地方,请大家指出,thanks!