如何使用 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。
有什么好担心的
我尝试使用 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。 有什么好担心的