Extraer objetos OLE del libro de trabajo
A veces, es necesario extraer objetos OLE de un libro de trabajo. Aspose.Cells admite la extracción y el guardado de esos objetos OLE.
Este artículo muestra cómo crear una aplicación de consola en Visual Studio.Net y extraer diferentes objetos OLE de un libro de trabajo con unas pocas líneas de código sencillas.
Extraer objetos OLE de un libro de trabajo
Crear un libro de trabajo de plantilla
- Crear un libro de trabajo en Microsoft Excel.
- 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) |
---|
![]() |
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
- Descargar Aspose.Cells for .NET.
- 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.
- Agregar referencias
- 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(); | |
} | |
} | |
} |