Как добавить файл изображения как объект Ole в Excel, используя java - PullRequest
0 голосов
/ 09 июля 2020

Я пробовал с ячейкой 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);

Здесь отображается соответствующий значок для файла, но файл не открывается при двойном щелчке.

Помощь сообщества приветствуется. Спасибо.

1 Ответ

0 голосов
/ 09 июля 2020

См. Следующие две строки кода, которые вам также необходимо добавить:

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

Вот полный пример кода, который я тестировал, и он отлично работает: например,

Образец code :

// 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.

...