0

我尝试使用 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);

在这里它显示了文件的正确图标,但双击时文件没有打开。

来自社区的帮助非常受欢迎。谢谢你。

4

2 回答 2

0

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

于 2021-06-24T02:21:14.840 回答
0

请参阅以下两行您还需要添加的代码:

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 担任支持开发人员/传播者。

于 2020-07-09T18:41:33.213 回答