ハイパーリンクは、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 に画像ハイパーリンクを追加する
テキストハイパーリンクのほかに、画像ハイパーリンクをクリックすることで特定の 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();
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。