@author YHC
添加图片:
image是drawing其中的一部分,添加图片需要调用createPicture(),在写入文件的时候需要注意,支持一下的类型:
PNG,JPG,DIB,应该值得注意的是,一旦你添加图片到这个工作簿中,任何现有的图片可能被擦除.
该示例所需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!