我想编辑里面有图片的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(),这会破坏现有的图像...... 我怎么处理这个?
答案 0 :(得分:1)
使用HSSF,您只能添加新图像,无法编辑现有图像或添加更多图像。他们需要一次性进入
.xlsx文件格式更加安全,因此XSSF能够让您将新图像添加到已有文件的文件中