添加更多图像时POI出现问题

时间:2011-06-22 15:48:18

标签: java image excel apache-poi

我想编辑里面有图片的Excel文件,并添加更多图片。 这是我的测试代码:

1           File inputFile=new File(path);
2           InputStream inp = new FileInputStream(inputFile);
3           Workbook wb = WorkbookFactory.create(inp);
4           InputStream is = new FileInputStream("catalog.png");
5           byte[] bytes = IOUtils.toByteArray(is);
6           int picture=wb.addPicture(bytes, wb.PICTURE_TYPE_PNG);
7           Drawing drawing  = sheet.createDrawingPatriarch();
8           //drawing = ((XSSFSheet)sheet).getDrawingPatriarch(); //missing method??
9           CreationHelper helper = wb.getCreationHelper();
10          ClientAnchor anchor = helper.createClientAnchor();
11          anchor.setCol1(0);
12          anchor.setRow1(currentRow.getRowNum());
13          anchor.setCol2(1);
14          anchor.setRow2(currentRow.getRowNum()+1);
15          Picture pict = drawing.createPicture(anchor, picture);

第6行的addPicture方法会破坏其他现有图像(显示红色X而不是图像) 那么我想我需要一个getDrawingPathiarch()方法,但是只有createDrawingPatriarch(),这会破坏现有的图像...... 我怎么处理这个?

1 个答案:

答案 0 :(得分:1)

使用HSSF,您只能添加新图像,无法编辑现有图像或添加更多图像。他们需要一次性进入

.xlsx文件格式更加安全,因此XSSF能够让您将新图像添加到已有文件的文件中