我准备了一个代码,它从数据库字段中获取字节,将图像存储为BLOB,并使用 apache poi version 3.9
将其插入到excel文件中此代码工作正常,图像被拉出并锚定到大多数情况下指定的列和行。
以下是代码:
Blob img = ads.getPhoto();
byte[] imageByte = ads.getPhoto().getBytes(1, (int) img.length());
if (imageByte.length > 10) {
try {
int picId = workbook.addPicture(imageByte, workbook.PICTURE_TYPE_JPEG);
CreationHelper helper = workbook.getCreationHelper();
Drawing drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
anchor.setCol1(2);
anchor.setCol2(3);
anchor.setRow1(rowId);
anchor.setRow2(rowId + 1);
Picture pict = drawing.createPicture(anchor, picId);
System.out.println("TEST PRINT");
} catch (Exception ex) {
ex.printStackTrace();
}
现在我缩小到一个导致问题的图像。 blob对我来说很好看。但是,当插入所有图像以及此特定图像时,将删除所有图像并打开Excel并显示错误消息:"文件错误:数据可能已丢失"
绘图族长中没有任何图像显示在Excel中。 如果我跳过此特定行,则图像在excel中显示正常。它只是这个特殊的形象。
任何人都可以帮我解决其中一个图纸中是否有错误的问题,如果找到则跳过它,以便剩下的图像保留,只删除此图像。
任何有关此建议都会有所帮助。 提前谢谢。
答案 0 :(得分:0)
切换到XSSF适用于此方案。显示损坏的图像,图像图标无效。 而其他所有人仍然适当地填充。
但是使用poi.3.15,XSSF的表现非常差。