Проблемы с POI, когда я добавляю больше изображений - PullRequest
1 голос
/ 22 июня 2011

Я хочу отредактировать файл 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);

метод addPicture в строке 6 прерывает другие существующие изображения (вместо изображения появляется красный крестик), тогда я предполагаю, что мне нужен метод getDrawingPathiarch (), но есть толькоcreateDrawingPatriarch (), и это уничтожит существующие изображения ... Как я могу справиться с этим?

1 Ответ

1 голос
/ 22 июня 2011

С HSSF вы можете только добавлять новые изображения, вы не можете редактировать существующие или добавлять другие. Они должны все войти за один раз

Формат файла .xlsx намного более разумный, поэтому XSSF позволяет добавлять новые изображения в файл, в котором они уже есть

...