Получение или установка идентификатора класса встроенного объекта OLE

Возможные сценарии использования

Aspose.Cells предоставляет свойство OleObject.ClassIdentifier, которое вы можете использовать для получения или установки идентификатора класса встроенного объекта OLE. Идентификаторы классов объектов OLE на самом деле являются GUID, то есть глобально уникальные идентификаторы. GUID всегда имеет длину 16 байт, поэтому идентификаторы классов также имеют длину 16 байт. Они часто находятся в реестре Windows и предоставляют информацию о приложении-хосте о том, как открыть встроенный объект OLE, содержащий различные встроенные ресурсы в клиентском приложении.

Получение или установка идентификатора класса встроенного объекта OLE

На следующем скриншоте показан идентификатор класса встроенного объекта OLE, т.е. GUID, который был считан из образца файла Excel с встроенным объектом PowerPoint.

todo:image_alt_text

Образец кода

Пожалуйста, ознакомьтесь с следующим образцом кода, выполненным с образцом файла Excel и его консольным выводом, который печатает Идентификатор класса встроенного объекта OLE, т.е. GUID. Распечатанный GUID полностью совпадает с показанным на скриншоте.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(GetSettheClassIdentifier.class) + "articles/";
//Load your sample workbook which contains embedded PowerPoint ole object
Workbook wb = new Workbook(dataDir + "sample.xls");
//Access its first worksheet
Worksheet ws = wb.getWorksheets().get(0);
//Access first ole object inside the worksheet
OleObject oleObj = ws.getOleObjects().get(0);
//Get the class identifier of ole object in bytes and convert them into GUID
byte[] classId = oleObj.getClassIdentifier();
//Position of the bytes and formatting
int[] pos = {3, 2, 1, 0, -1, 5, 4, -1, 7, 6, -1, 8, 9, -1, 10, 11, 12, 13, 14,15};
StringBuilder sb = new StringBuilder();
for(int i=0; i<pos.length; i++)
{
if(pos[i]==-1)
{
sb.append("-");
}
else
{
sb.append(String.format("%02X", classId[pos[i]]&0xff));
}
}
//Get the GUID from conversion
String guid = sb.toString();
//Print the GUID
System.out.println(guid);

Вывод в консоль

Это вывод консоли приведенного выше образца кода при выполнении с образцом excel-файла.

 DC020317-E6E2-4A62-B9FA-B3EFE16626F4