如何使用 java 在 excel 中将图像文件添加为 Ole 对象

How to add image file as Ole object in excel using java

我尝试使用 Aspose 单元格。 但我能够正确添加 pdf 文件。 当我添加 jpg 文件时,它显示在 excel 文件中但没有打开。

我尝试了以下方法。

sheet.getOleObjects().get(oleObjectIndex).setImageData(binary);
            sheet.getOleObjects().get(oleObjectIndex).setLeftCM(oleObjectIndex);
            sheet.getOleObjects().get(oleObjectIndex).setDisplayAsIcon(true);

这里的图片显示为缩略图,但我不想要那个。

sheet.getOleObjects().get(oleObjectIndex).setObjectData(binary);
            //sheet.getOleObjects().get(oleObjectIndex).setFileType(oleFileType);
            sheet.getOleObjects().get(oleObjectIndex).setDisplayAsIcon(true);
            sheet.getOleObjects().get(oleObjectIndex).setLeftCM(oleObjectIndex);

此处显示了文件的正确图标,但双击时文件未打开。

非常感谢社区的帮助。 谢谢。

查看下面两行代码,您还需要添加:

sheet.getOleObjects().get(oleObjectIndex).setFileFormatType(FileFormatType.UNKNOWN);
sheet.getOleObjects().get(oleObjectIndex).setObjectSourceFullName(path);

这是我测试过的完整示例代码,它运行良好: 例如

示例代码:

// Get the image file.
String path = "e:\test\myfile.jpg";
File file = new File(path);

// Get the picture into the streams.
byte[] img = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
fis.read(img);

// Instantiate a new Workbook.
Workbook wb = new Workbook();

// Get the first worksheet.
Worksheet sheet = wb.getWorksheets().get(0);

// Add an Ole object into the worksheet with the image shown in MS Excel.
int oleObjIndex = sheet.getOleObjects().add(14, 3, 200, 220, img);
OleObject oleObj = sheet.getOleObjects().get(oleObjIndex);

// Set embedded ole object data and other attributes.
oleObj.setObjectData(img);
oleObj.setDisplayAsIcon(true);
oleObj.setFileFormatType(com.aspose.cells.FileFormatType.UNKNOWN);
oleObj.setObjectSourceFullName(path);

// Save the excel file
wb.save("f:\files\tstoleobject1.xlsx");

希望,这有点帮助。

PS。我在 Aspose 担任支持开发人员/传播者。

我只是使用相同的代码,但我发现当我打开新的 Excel 时,它显示为图像,我必须检查两次才能将其传输到 OLE。 有什么好担心的