チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»C++»Spire.XLS for C++»ハイパーリンク»C++:Excel にハイパーリンクを追加する方法
2023-06-12

C++:Excel にハイパーリンクを追加する方法

ハイパーリンクは、Excel で異なる部分を接続したり、Web サイト、メールアドレス、他のファイルなどの外部ソースにリンクすることができる強力なツールです。これにより、ユーザーはワークシート内または異なるワークシート間を素早く簡単に移動できます。ナビゲーションを容易にするだけでなく、ハイパーリンクはファイル内のデータに関連する追加のコンテキストやリソースを提供することもできます。たとえば、ワークシートに記載されている特定の製品に関する詳細情報を提供する Web サイトにリンクし、読者が製品をより深く理解できるようにすることができます。この記事では、Spire.XLS for C++ を使用して C++ で Excel にテキストおよび画像のハイパーリンクを追加する方法について説明します。

Spire.XLS for C++ をインストールします

Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。

Spire.XLS for C++ を C++ アプリケーションに統合する方法

C++ で Excel にテキストハイパーリンクを追加する

Excel のテキストハイパーリンクはテキストとして表示されます。 テキストをクリックすると、ワークブックの特定の位置、電子メールアドレス、web ページ、外部ファイルなどの特定のページにジャンプできます。 次の手順では、Spire.XLS for C++ を使用して Excel にテキストハイパーリンクを追加する方法を説明します。

  • Workbook クラスのインスタンスを初期化します。
  • Workbook->GetWorksheets()->Get(int index) メソッドを使用して特定のワークシートを取得します。
  • Worksheet->GetRange(LPCWSTR_S name) メソッドを使用して、ハイパーリンクを追加するセルを取得します。
  • Worksheet->GetHyperLinks()->Add(intrusive_ptr<IXLSRange> range) メソッドを使用して、そのセルにハイパーリンクを追加します。
  • XlsHyperLink->SetType(HyperLinkType value)XlsHyperLink->SetTextToDisplay(LPCWSTR_S value) および XlsHyperLink->SetAddress(LPCWSTR_S value) メソッドを使用して、ハイパーリンクのタイプ、テキスト、およびアドレスを設定します。
  • XlsWorksheet->AutoFitColumn(int columnIndex) メソッドを使用して列幅を自動調整します。
  • Workbook->SaveToFile(LPCWSTR_S fileName, ExcelVersion version) メソッドを使用して結果ファイルを保存します。
  • C++
#include "Spire.Xls.o.h";

using namespace Spire::Xls;

int main()
{
    //Workbookクラスのインスタンスを初期化する
    intrusive_ptr<Workbook> workbook = new Workbook();

    //最初のワークシートを取得する
    intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));

    //Webページへのテキストハイパーリンクを追加する
    intrusive_ptr<CellRange> cell1 = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"B3"));
    intrusive_ptr<HyperLink> urlLink = sheet->GetHyperLinks()->Add(cell1);
    urlLink->SetType(HyperLinkType::Url);
    urlLink->SetTextToDisplay(L"E-ICEBLUE");
    urlLink->SetAddress(L"https://www.e-iceblue.com/");

    //電子メールアドレスへのテキストハイパーリンクを追加する
    intrusive_ptr<CellRange> cell2 = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"E3"));
    intrusive_ptr<HyperLink> mailLink = sheet->GetHyperLinks()->Add(cell2);
    mailLink->SetType(HyperLinkType::Url);
    mailLink->SetTextToDisplay(L"電子メールアドレス");
    mailLink->SetAddress(L"mailto:support @e-iceblue.com");

    //外部ファイルへのテキストハイパーリンクを追加する
    intrusive_ptr<CellRange> cell3 = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"B7"));
    intrusive_ptr<HyperLink> fileLink = sheet->GetHyperLinks()->Add(cell3);
    fileLink->SetType(HyperLinkType::File);
    fileLink->SetTextToDisplay(L"外部ファイル");
    fileLink->SetAddress(L"C:\\Users\\Administrator\\Desktop\\Report.xlsx");

    //別のシートのセルへのテキストハイパーリンクを追加する
    intrusive_ptr<CellRange> cell4 = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"E7"));
    intrusive_ptr<HyperLink> sheetLink = sheet->GetHyperLinks()->Add(cell4);
    sheetLink->SetType(HyperLinkType::Workbook);
    sheetLink->SetTextToDisplay(L"sheet2のB5");
    sheetLink->SetAddress(L"Sheet2!B5");

    //UNCアドレスへのテキストハイパーリンクを追加する
    intrusive_ptr<CellRange> cell5 = dynamic_pointer_cast<CellRange>(sheet->GetRange(L"B11"));
    intrusive_ptr<HyperLink> uncLink = sheet->GetHyperLinks()->Add(cell5);
    uncLink->SetType(HyperLinkType::Unc);
    uncLink->SetTextToDisplay(L"UNCアドレス");
    uncLink->SetAddress(L"\\192.168.0.121");

    //列幅を自動調整する
    sheet->AutoFitColumn(2);
    sheet->AutoFitColumn(5);

    //結果ファイルを保存する
    workbook->SaveToFile(L"AddTextHyperlinks.xlsx", ExcelVersion::Version2013);
    workbook->Dispose();
}

C++:Excel にハイパーリンクを追加する方法

C++ で Excel に画像ハイパーリンクを追加する

テキストハイパーリンクのほかに、画像ハイパーリンクをクリックすることで特定の web ページにジャンプすることもできます。 次の手順では、Spire.XLS for C++ を使用して画像ハイパーリンクをに追加する方法を説明します。

  • Workbook クラスのインスタンスを初期化します。
  • Workbook->GetWorksheets()->Get(int index) メソッドを使用して特定のワークシートを取得します。
  • Worksheetsheet->GetRange(LPCWSTR_S name)->SetText(LPCWSTR_S value) メソッドを使用して、特定のセルにテキストを追加します。
  • Worksheet->GetPictures()->Add(int topRow,int leftColumn, LPCWSTR_S fileName) メソッドを使用して、特定のセルに画像を追加します。
  • 画像の幅と高さを設定します。
  • XlsBitmapShape->SetHyperLink(LPCWSTR_S linkString, bool isExternal) メソッドを使用して、画像にハイパーリンクを追加します。
  • Workbook->SaveToFile(LPCWSTR_S fileName, ExcelVersion version) メソッドを使用して結果ファイルを保存します。
  • C++
#include "Spire.Xls.o.h";

using namespace Spire::Xls;

int main()
{
    //Workbookクラスのインスタンスを初期化する
    intrusive_ptr<Workbook> workbook = new Workbook();
    //最初のワークシートを取得する
    intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));

    //特定のセルにテキストを追加する
    sheet->GetRange(L"A1")->SetText(L"画像ハイパーリンク");

    //特定のセルに画像を追加する
    intrusive_ptr<ExcelPicture> picture = ExcelPicture::Dynamic_cast<ExcelPicture>(sheet->GetPictures()->Add(2, 1, L"Logo.png"));
    //画像の幅と高さを設定する
    picture->SetWidth(100);
    picture->SetHeight(100);

    //画像へのハイパーリンクを追加する
    picture->SetHyperLink(L"https://www.e-iceblue.com", true);

    //列幅を設定する
    sheet->GetColumns()->GetItem(0)->SetColumnWidth(13);

    //結果ファイルを保存する
    workbook->SaveToFile(L"AddImageHyperlink.xlsx", ExcelVersion::Version2013);
    workbook->Dispose();
}

C++:Excel にハイパーリンクを追加する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 357 times