Extraer objetos OLE del libro de trabajo

Extraer objetos OLE de un libro de trabajo

Crear un libro de trabajo de plantilla

  1. Crear un libro de trabajo en Microsoft Excel.
  2. Agregar un documento de Word de Microsoft, un libro de trabajo de Excel y un documento PDF como objetos OLE en la primera hoja de cálculo.
Documento de plantilla con objetos OLE (OleFile.xls)
todo:image_alt_text

A continuación, extraiga los objetos OLE y guárdelos en el disco duro con sus respectivos tipos de archivo.

Descargar e instalar Aspose.Cells

  1. Descargar Aspose.Cells for .NET.
  2. Instálelo en su equipo de desarrollo.

Todos los componentes de Aspose, al instalarse, funcionan en modo de evaluación. El modo de evaluación no tiene límite de tiempo y solo inserta marcas de agua en los documentos producidos.

Crear un proyecto

Inicie Visual Studio.Net y cree una nueva aplicación de consola. Este ejemplo mostrará una aplicación de consola en C#, pero también puede usar VB.NET.

  1. Agregar referencias
    1. Agregar una referencia al componente Aspose.Cells a su proyecto, por ejemplo agregar una referencia a …\Program Files\Aspose\Aspose.Cells\Bin\Net1.0\Aspose.Cells.dll

Extraer objetos OLE

El código a continuación realiza el trabajo real de encontrar y extraer objetos OLE. Los objetos OLE (archivos DOC, XLS y PDF) se guardan en disco.

// 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();
}
}
}