Extraire les objets OLE du classeur
Parfois, vous devez extraire des objets OLE d’un classeur. Aspose.Cells pour Python via .NET supporte 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.
Extraire les objets OLE à l’aide de la bibliothèque Aspose.Cells pour Python Excel
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.
from aspose.cells import FileFormatType, Workbook | |
from io import BytesIO | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Open the template file. | |
workbook = Workbook(dataDir + "oleFile.xlsx") | |
# Get the OleObject Collection in the first worksheet. | |
oles = workbook.worksheets[0].ole_objects | |
# Loop through all the oleobjects and extract each object in the worksheet. | |
for i in range(len(oles)): | |
ole = oles[i] | |
# Specify the output filename. | |
fileName = dataDir + "outOle" + str(i) + "." | |
# Specify each file format based on the oleobject format type. | |
if ole.file_format_type == FileFormatType.DOC: | |
fileName = "doc" | |
elif ole.file_format_type == FileFormatType.EXCEL_97_TO_2003: | |
fileName = "Xlsx" | |
elif ole.file_format_type == FileFormatType.PPT: | |
fileName = "Ppt" | |
elif ole.file_format_type == FileFormatType.PDF: | |
fileName = "Pdf" | |
elif ole.file_format_type == FileFormatType.UNKNOWN: | |
fileName = "Jpg" | |
# Save the oleobject as a new excel file if the object type is xls. | |
if ole.file_format_type == FileFormatType.XLSX: | |
ms = BytesIO() | |
if ole.object_data != None: | |
ms.write(ole.object_data) | |
oleBook = Workbook(ms) | |
oleBook.settings.is_hidden = False | |
oleBook.save(dataDir + "outOle" + str(i) + ".out.xlsx") | |
else: | |
if ole.object_data != None: | |
fs = open(fileName, "wb") | |
fs.write(ole.object_data) | |
fs.close() |