在Apache POI 4.0.0及更高版本中,getCellTypeEnum()和CellType.PICTURE已被废弃。取而代之的是使用getCellType()和CellType类中相应的常量,例如CellType.BLANK、CellType.BOOLEAN、CellType.NUMERIC、CellType.STRING等。
因此,上面的代码可以重写如下:
if (cell.getCellType() == CellType.PICTURE) {
byte[] data = cell.getCellStyle().getDataFormatString().getBytes();
int formatIndex = data[data.length - 1];
BufferedImage image = ImageIO.read(cell.getPictureData().getData());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
Image img = Image.getInstance(baos.toByteArray());
img.scaleToFit(PageSize.A4.getWidth(), PageSize.A4.getHeight());
PdfPCell imageCell = new PdfPCell(img);
table.addCell(imageCell);
}
请注意,在使用该代码之前,请确保已经正确地引入了iText库的依赖项,并且相关类已经导入。