ワークブックからOLEオブジェクトを抽出

ワークブックからOLEオブジェクトを抽出

テンプレートワークブックの作成

  1. Microsoft Excelでワークブックを作成しました。
  2. 最初のワークシートにMicrosoft Wordドキュメント、Excelワークブック、PDFドキュメントをOLEオブジェクトとして追加しました。
OLEオブジェクトを含むテンプレートドキュメント(OleFile.xls)
todo:image_alt_text

次に、OLEオブジェクトを抽出し、それらをそれぞれのファイルタイプでハードディスクに保存します。

Aspose.Cellsをダウンロードしてインストールする

  1. ダウンロード Aspose.Cells for .NET
  2. 開発コンピュータにインストールします。

すべてのAsposeのコンポーネントは、インストールされると評価モードで動作します。評価モードには時間制限はなく、生成された文書にウォーターマークを注入するだけです。

プロジェクトを作成する

Visual Studio.Netを起動し、新しいコンソールアプリケーションを作成します。この例ではC#コンソールアプリケーションを示しますが、VB.NETも利用できます。

  1. 参照を追加
    1. プロジェクトに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();
}
}
}