Extraire les objets OLE du classeur
Parfois, vous devez extraire des 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 des objets OLE d’un classeur
Création d’un modèle de classeur
- Création d’un classeur dans Microsoft Excel.
- Ajoutez un document Word Microsoft, un classeur Excel et un document PDF en tant qu’objets OLE sur la première feuille de calcul.
Modèle de document avec des objets OLE (OleFile.xls) |
---|
![]() |
Extrayez ensuite 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écharger Aspose.Cells for .NET.
- Installez-le sur votre poste 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 il injecte uniquement des filigranes dans les documents produits.
Créer un projet
DémarrerVisual Studio.Net et créer une nouvelle application console. Cet exemple montre 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 effectue le travail réel de recherche et d’extraction d’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(); | |
} | |
} | |
} |