您的位置:首页 > 其它

POI插入图片时,原来的图片被清除的问题3.7中还没解决啊

2010-07-17 18:12 330 查看
POI3.7的测试版本已经发布了,一直对POI操作图片的处理比较关心.

以前的版本中如果模板文件中有图片,然后再代码中再新增加图片的话,原来的图片会被清除掉.这个在实际的应用中不能不是说一个很大的不便.

原文描述如下:

Images

Images are part of the drawing support. To add an image just call
createPicture() on the drawing patriarch. At the time of writing the following types are supported:

PNG
JPG
DIB

It should be noted that any existing drawings may be erased once you add a image to a sheet.


//create a new workbook

Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();

//add picture data to this workbook.

InputStream is = new FileInputStream("image1.jpeg");

byte[] bytes = IOUtils.toByteArray(is);

int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);

is.close();

CreationHelper helper = wb.getCreationHelper();

//create sheet

Sheet sheet = wb.createSheet();

// Create the drawing patriarch.  This is the top level container for all shapes.

Drawing drawing = sheet.createDrawingPatriarch();

//add a picture shape

ClientAnchor anchor = helper.createClientAnchor();

//set top-left corner of the picture,

//subsequent call of Picture#resize() will operate relative to it

anchor.setCol1(3);

anchor.setRow1(2);

Picture pict = drawing.createPicture(anchor, pictureIdx);

//auto-size picture relative to its top-left corner

pict.resize();

//save workbook

String file = "picture.xls";

if(wb instanceof XSSFWorkbook) file += "x";

FileOutputStream fileOut = new FileOutputStream(file);

wb.write(fileOut);

fileOut.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: