OLEObjectLinkingandEmbeddingの略です。これはMicrosoftによって提供され、さまざまなアプリケーションによって作成されたアイテムまたはオブジェクトを含むドキュメントを作成および編集できます。

例として、スプレッドシート、画像、サウンドクリップをOLEオブジェクトとしてWord文書に埋め込むことができます。これらのOLEオブジェクトをWord文書で使用でき、複数のアプリケーションに何度も切り替える必要はありません。 C#でOLEを使用して、プログラムでそのようなオブジェクトを埋め込んだり挿入したりできます。

この記事では、次の方法について説明します。

この記事の手順とコードサンプルは、GroupDocs.Merger for.NETを使用しています。したがって、次のいずれかの方法からAPIをインストールしてください。

  • NuGetパッケージマネージャーを使用してインストールします。
  • ダウンロードDLLを作成し、プロジェクトに参照します。

PDFをOLEオブジェクトとしてC#のMSWordドキュメントに挿入します

C#のWord文書にOLEとしてPDFを挿入する

PDFファイルをOLEオブジェクトとしてWord文書に埋め込む方法を示す手順とC#コードサンプルは次のとおりです。

  1. 埋め込みオプションとWordドキュメントに埋め込むドキュメントを使用してOleWordProcessingOptionsをインスタンス化します。
  2. 次に、MergerオブジェクトをソースWordドキュメントパスまたはストリームでインスタンス化します。
  3. ImportDocumentメソッドを呼び出し、手順1で設定したOLEワードプロセッシングオプションのオブジェクトを渡します。
  4. それでおしまい。 保存メソッドを呼び出して、PDFドキュメントをOLEオブジェクトとして含む結果のWordドキュメントを取得します。
// Embed a PDF file into a Word document as an OLE Object in C#
int pageNumber = 2;
OleWordProcessingOptions oleWordProcessingOptions = new OleWordProcessingOptions(@"embedded-doc.pdf", pageNumber)
{ 
    Width = 300, // Just setting the height & width, you have more options.
    Height = 300
};
// Use Merger class to start with source Word document and embed PDF as OLE object.
using (Merger merger = new Merger(@"source-doc.docx"))
{
    merger.ImportDocument(oleWordProcessingOptions);
    merger.Save(@"word-document-with-OLE.docx");
}

Word文書をOLEオブジェクトとしてC#のExcelスプレッドシートに挿入します

WordファイルのOLEをC#のExcelスプレッドシートに挿入します

OLEオブジェクトをExcelスプレッドシートに埋め込むことができます。 CSharpコードのサンプルとWord文書をOLEオブジェクトとしてExcelスプレッドシートに追加する方法を説明する以下の手順:

  1. OleSpreadsheetOptionsを埋め込みオプションと、Excelスプレッドシートに埋め込むドキュメントを使用してインスタンス化します。
  2. 次に、Mergerオブジェクトをソーススプレッドシートパスまたはストリームでインスタンス化します。
  3. 次に、ImportDocumentメソッドを呼び出し、手順1で設定したOLEスプレッドシートオプションのオブジェクトを渡します。
  4. 最後に、Saveメソッドを呼び出して、Word文書をOLEオブジェクトとして含む結果のExcelスプレッドシートを取得します。
// Embed a Word file into an Excel Spreadsheet as an OLE Object in C#
int pageNumber = 2;
OleSpreadsheetOptions oleSpreadsheetOptions = new OleSpreadsheetOptions(@"embedded-doc.docx", pageNumber)
{
    RowIndex = 2, // Setting the Row & height Index, you have more options.
    ColumnIndex = 2
};
// Using Merger class with source spreadsheet and embedding a Word document as an OLE object.
using (Merger merger = new Merger(@"sample-doc.xlsx"))
{
    merger.ImportDocument(oleSpreadsheetOptions);
    merger.Save(@"excel-sheet-with-ole.xlsx");
}

PDFをOLEオブジェクトとしてC#のPowerPointプレゼンテーションに追加する

C#のPowerPointプレゼンテーションにOLEとしてPDFを挿入する

同様に、ここではPowerPointプレゼンテーションにオブジェクトを挿入しています。

  1. 埋め込みオプションとPowerPointプレゼンテーションに埋め込むドキュメントを使用してOlePresentationOptionsをインスタンス化します。
  2. 次に、MergerオブジェクトをsourcePresentationパスまたはストリームでインスタンス化します。
  3. ImportDocumentメソッドを呼び出し、手順1で設定したOLEプレゼンテーションオプションのオブジェクトを渡します。
  4. 最後に、Saveメソッドを呼び出して、PDFドキュメントをOLEオブジェクトとして含むPowerPointプレゼンテーションを作成します。
// Embed a PDF file into an Excel Spreadsheet as an OLE Object in C#
int pageNumber = 2;
OlePresentationOptions olePresentationOptions = new OlePresentationOptions(@"embedded.pdf", pageNumber)
{
    X = 10, // Setting only X & Y coordinates, you can customize more.
    Y = 10
};
// Using Merger class to embed a PDF file as an OLE object in the PowerPoint presentation.
using (Merger merger = new Merger(@"sample-presentation.ppt"))
{
    merger.ImportDocument(olePresentationOptions);
    merger.Save(@"powerpoint-presentation-with-ole.ppt");
}

結論

C#でプログラムによってWord、Excel、またはPowerPointドキュメントにOLEオブジェクトを挿入するのがいかに簡単で迅速かについて説明しました。各目的のコードにはわずかな違いがあります。つまり、ファイル形式ごとに異なるOLEオプションクラスとそのオプションがあります。

  • ** OleWordProcessingOptions は、OLEオブジェクトをWord文書**に埋め込みます。
  • ** OleSpreadsheetOptions は、OLEオブジェクトをExcelスプレッドシート**に埋め込みます。
  • ** OlePresentationOptions **は、PowerPointプレゼンテーションにOLEオブジェクトを埋め込みます。

APIの詳細については、ドキュメントまたはもっと話しましょう@無料サポートフォーラムをご覧ください。