OLE Nesnelerini Yönetme

Giriş

OLE (Object Linking and Embedding), Microsoft’in bir bileşik belge teknolojisi çerçevesidir. Kısaca, bir bileşik belge, her türlü görsel ve bilgi nesnesini içerebilen bir ekran masaüstü gibi bir şeydir: metin, takvimler, animasyonlar, ses, hareketli video, 3B, sürekli güncellenen haberler, kontroller vb. Her masaüstü nesnesi, bir kullanıcıyla etkileşime girebilen ve ayrıca masaüstündeki diğer nesnelerle iletişim kurabilen bağımsız bir program varlığıdır.

OLE (Object Linking and Embedding) birçok farklı program tarafından desteklenir ve bir programda oluşturulan içeriğin başka bir programda kullanılabilir olmasını sağlamak için kullanılır. Örneğin, bir Microsoft Word belgesini Microsoft Excel’e ekleyebilirsiniz. Ne tür içerik ekleyebileceğinizi görmek için tıklayınNesne üzerindeSokmak Menü. Yalnızca bilgisayarda yüklü olan ve OLE nesnelerini destekleyen programlar görüntülenir.Nesne türü Kutu.

OLE Nesnelerini Çalışma Sayfasına Ekleme

Aspose.Cells, çalışma sayfalarına OLE nesneleri eklemeyi, ayıklamayı ve değiştirmeyi destekler. Bu nedenle Aspose.Cells,OleNesne Koleksiyonutoplama listesine yeni bir OLE Nesnesi eklemek için kullanılan sınıf. Başka bir sınıf,Ole nesnesi, bir OLE Nesnesini temsil eder. Bazı önemli üyeleri vardır:

  • Görüntü Verileribayt dizisi türündeki görüntü (simge) verilerini belirtir. Görüntü, çalışma sayfasında OLE Nesnesini göstermek için görüntülenecektir.
  • Nesne Verilerinesne verilerini bir bayt dizisi biçiminde belirtir. OLE Object ikonuna çift tıkladığınızda bu veriler ilgili programda gösterilecektir.

Aşağıdaki örnek, bir OLE Nesnesinin çalışma sayfasına nasıl ekleneceğini gösterir.

// 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.getDataDir(InsertingOLEObjects.class);
// Get the image file.
File file = new File(dataDir + "logo.jpg");
// Get the picture into the streams.
byte[] img = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
fis.read(img);
// Get the excel file into the streams.
file = new File(dataDir + "Book1.xls");
byte[] data = new byte[(int) file.length()];
fis = new FileInputStream(file);
fis.read(data);
// 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.
oleObj.setObjectData(data);
// Save the excel file
wb.save(dataDir + "tstoleobjects.xls");

Çalışma Kitabındaki OLE Nesnelerini Çıkarma

Aşağıdaki örnek, bir Çalışma Kitabında OLE Nesnelerinin nasıl ayıklanacağını gösterir. Örnek, mevcut bir XLS dosyasından farklı OLE nesneleri alır ve OLE nesnesinin dosya biçimi türüne göre farklı dosyaları (DOC, XLS, PPT, PDF, vb.) kaydeder.

İşte şablon XLS dosyasının ekran görüntüsü, ilk çalışma sayfasına katıştırılmış farklı OLE Nesneleri var.

Şablon dosyası dört OLE nesnesi içerir

yapılacaklar:resim_alternatif_metin

Kodu çalıştırdıktan sonra, ilgili OLE Nesneleri biçim türlerine göre farklı dosyaları kaydedebiliriz. Oluşturulan dosyalardan bazıları için ekran görüntüleri aşağıdadır.

Ayıklanan XLS dosyası

yapılacaklar:resim_alternatif_metin

Çıkarılan PPT dosyası

yapılacaklar:resim_alternatif_metin

// 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.getDataDir(ExtractingOLEObjects.class);
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
// Get the OleObject Collection in the first worksheet.
OleObjectCollection oles = workbook.getWorksheets().get(0).getOleObjects();
// Loop through all the ole objects and extract each object. in the worksheet.
for (int i = 0; i < oles.getCount(); i++) {
if (oles.get(i).getMsoDrawingType() == MsoDrawingType.OLE_OBJECT) {
OleObject ole = (OleObject) oles.get(i);
// Specify the output filename.
String fileName = dataDir + "tempBook1ole" + i + ".";
// Specify each file format based on the oleformattype.
switch (ole.getFileFormatType()) {
case FileFormatType.DOC:
fileName += "doc";
break;
case FileFormatType.EXCEL_97_TO_2003:
fileName += "Xls";
break;
case FileFormatType.PPT:
fileName += "Ppt";
break;
case FileFormatType.PDF:
fileName += "Pdf";
break;
case FileFormatType.UNKNOWN:
fileName += "Jpg";
break;
default:
fileName += "data";
break;
}
FileOutputStream fos = new FileOutputStream(fileName);
byte[] data = ole.getObjectData();
fos.write(data);
fos.close();
}
}

Katıştırılmış MOL Dosyasını Çıkarma

Aspose.Cells, MOL (atomlar ve bağlar hakkında bilgi içeren moleküler veri dosyası) gibi alışılmadık türdeki nesnelerin çıkarılmasını destekler. Aşağıdaki kod parçacığı, gömülü MOL dosyasının çıkarılmasını ve bunu kullanarak diske kaydetmeyi gösterir.örnek excel dosyası.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the directories.
String sourceDir = Utils.Get_SourceDirectory();
String outputDir = Utils.Get_OutputDirectory();
Workbook workbook = new Workbook(sourceDir + "EmbeddedMolSample.xlsx");
int index = 1;
for (Object obj : workbook.getWorksheets())
{
Worksheet sheet = (Worksheet)obj;
OleObjectCollection oles = sheet.getOleObjects();
for (Object obj2 : oles)
{
OleObject ole = (OleObject)obj2;
String fileName = outputDir + "OleObject" + index + ".mol ";
FileOutputStream fos = new FileOutputStream(fileName);
fos.write(ole.getObjectData());
fos.flush();
fos.close();
index++;
}
}

ileri konular