在excel中嵌入图片,在什么都不修改的情况下,导出新的excel,图片无法展示,引用文件丢失

正在处理:1736921129982.jpg…
1736921170199(1).png (13.4 KB)

这是存在的bug,还是需要特别的设置?

@maochen

请您提供更多信息,例如您使用的代码示例和具体的操作步骤,以便我们更好地理解您的问题。

@maochen
你愿意提供样例文件和可运行的测试代码吗?我们很快就会检查。

中文-图片内嵌.zip (510.0 KB)

对该文件直接导出,图片就无法展示了

@maochen
通过使用样例文件和以下样例代码在最新版本v24.12上进行测试,我们发现保存后的文件在WPS里打开时,图片丢失了。请查看附件。out_java.zip (510.7 KB)

Workbook wb = new Workbook(filePath + "中文-图片内嵌.xlsx");
wb.save(filePath + "out_java.xlsx");

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

问题单号:CELLSJAVA-46237

@maochen
DISPIMG是WPS特有的函数。如果你想在Excel里插入图片,请参考以下文档。

另外,如果你想在单元格上设置嵌入图片,请参考以下样例代码:

//Instantiating an Workbook object
Workbook workbook = new Workbook();
//Obtaining the first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);

//Getting D8 cell
Cell d8 = worksheet.getCells().get("D8");

BufferedImage image = ImageIO.read(new File("aspose.jpg"));

ByteArrayOutputStream baos = new ByteArrayOutputStream();        
ImageIO.write(image, "jpg", baos);
byte[] imageBytes = baos.toByteArray();
baos.close();       

d8.setEmbeddedImage(imageBytes);

workbook.save("out.xlsx");

好的,感谢,我目前使用的是aspose-cells 19.6版本,可能还不支持setEmbeddedImage这个属性

@maochen
感谢你的反馈。不客气。我们建议您尝试使用我们的最新版本Aspose.Cells for Java v24.12
如果你有任何疑问,请随时联系我们。

@maochen
这是WPS特有的功能。
我们已经修复了这个问题,将会在下一个版本25.2 中发布。
而且经过我们的处理, 这个嵌入的图片在Excel中也能看到了。

The issues you have found earlier (filed as CELLSJAVA-46237) have been fixed in Aspose.Cells for Java 25.2.