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.

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()