ワークブックからOLEオブジェクトを抽出
時には、ブックからOLEオブジェクトを抽出する必要があります。Aspose.CellsはこれらのOLEオブジェクトを抽出して保存する機能をサポートしています。
この記事は、少数のコード行でVisual Studio.Netでコンソールアプリケーションを作成し、ワークブックから異なるOLEオブジェクトを抽出する方法を示しています。
ワークブックからOLEオブジェクトを抽出
テンプレートワークブックの作成
- Microsoft Excelでワークブックを作成しました。
- 最初のワークシートにMicrosoft Wordドキュメント、Excelワークブック、PDFドキュメントをOLEオブジェクトとして追加しました。
OLEオブジェクトを含むテンプレートドキュメント(OleFile.xls) |
---|
![]() |
次に、OLEオブジェクトを抽出し、それらをそれぞれのファイルタイプでハードディスクに保存します。
Aspose.Cellsをダウンロードしてインストールする
- ダウンロード Aspose.Cells for .NET。
- 開発コンピュータにインストールします。
すべてのAsposeのコンポーネントは、インストールされると評価モードで動作します。評価モードには時間制限はなく、生成された文書にウォーターマークを注入するだけです。
プロジェクトを作成する
Visual Studio.Netを起動し、新しいコンソールアプリケーションを作成します。この例ではC#コンソールアプリケーションを示しますが、VB.NETも利用できます。
- 参照を追加
- プロジェクトにAspose.Cellsコンポーネントの参照を追加します。たとえば、…\Program Files\Aspose\Aspose.Cells\Bin\Net1.0\Aspose.Cells.dllに参照を追加します。
OLE オブジェクトの抽出
以下のコードは実際にOLEオブジェクトを検出して抽出する実際の作業を行います。OLEオブジェクト(DOC、XLS、PDFファイル)はディスクに保存されます。
// 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(); | |
} | |
} | |
} |