Extraire les objets OLE du classeur
Parfois, vous devez extraire les objets OLE d’un classeur. Aspose.Cells prend en charge l’extraction et l’enregistrement de ces objets Ole.
Cet article montre comment créer une application console dans Visual Studio.Net et extraire différents objets OLE d’un classeur avec quelques lignes de code simples.
Extraire les objets OLE d’un classeur
Création d’un classeur modèle
- Créé un classeur sous Microsoft Excel.
- 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) |
---|
![]() |
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
- Téléchargez Aspose.Cells for .NET.
- 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.
- Ajouter des références
- 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(); | |
} | |
} | |
} |