Extraire les objets OLE du classeur

Extraire les objets OLE d’un classeur

Création d’un classeur modèle

  1. Créé un classeur sous Microsoft Excel.
  2. Ajoutez un document Microsoft Word, un classeur Excel et un document PDF en tant qu’objets OLE sur la première feuille de calcul.
Document de modèle avec des objets OLE (OleFile.xls)
todo:image_alt_text

Ensuite, extrayez les objets OLE et enregistrez-les sur le disque dur avec leurs types de fichiers respectifs.

Téléchargez et installez Aspose.Cells

  1. Téléchargez Aspose.Cells for .NET.
  2. Installez-le sur votre ordinateur de développement.

Tous les composants Aspose, une fois installés, fonctionnent en mode d’évaluation. Le mode d’évaluation n’a pas de limite de temps et n’injecte que des filigranes dans les documents produits.

Créer un projet

Démarrez Visual Studio.Net et créez une nouvelle application console. Cet exemple montrera une application console C#, mais vous pouvez également utiliser VB.NET.

  1. Ajouter des références
    1. Ajoutez une référence au composant Aspose.Cells à votre projet, par exemple ajoutez une référence à …\Program Files\Aspose\Aspose.Cells\Bin\Net1.0\Aspose.Cells.dll

Extraire des objets OLE

Le code ci-dessous fait le travail effectif de trouver et d’extraire des objets OLE. Les objets OLE (fichiers DOC, XLS et PDF) sont enregistrés sur le disque.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Open the template file.
Workbook workbook = new Workbook(dataDir + "oleFile.xlsx");
// Get the OleObject Collection in the first worksheet.
Aspose.Cells.Drawing.OleObjectCollection oles = workbook.Worksheets[0].OleObjects;
// Loop through all the oleobjects and extract each object in the worksheet.
for (int i = 0; i < oles.Count; i++)
{
Aspose.Cells.Drawing.OleObject ole = oles[i];
// Specify the output filename.
string fileName = dataDir+ "outOle" + i + ".";
// Specify each file format based on the oleobject format type.
switch (ole.FileFormatType)
{
case FileFormatType.Doc:
fileName += "doc";
break;
case FileFormatType.Excel97To2003:
fileName += "Xlsx";
break;
case FileFormatType.Ppt:
fileName += "Ppt";
break;
case FileFormatType.Pdf:
fileName += "Pdf";
break;
case FileFormatType.Unknown:
fileName += "Jpg";
break;
default:
//........
break;
}
// Save the oleobject as a new excel file if the object type is xls.
if (ole.FileFormatType == FileFormatType.Xlsx)
{
MemoryStream ms = new MemoryStream();
if (ole.ObjectData != null)
{
ms.Write(ole.ObjectData, 0, ole.ObjectData.Length);
Workbook oleBook = new Workbook(ms);
oleBook.Settings.IsHidden = false;
oleBook.Save(dataDir + "outOle" + i + ".out.xlsx");
}
}
// Create the files based on the oleobject format types.
else
{
if (ole.ObjectData != null)
{
FileStream fs = File.Create(fileName);
fs.Write(ole.ObjectData, 0, ole.ObjectData.Length);
fs.Close();
}
}
}