ハイパーリンクは、Excel ファイルにおいて重要な要素であり、外部データソースへの参照やワークシート間の移動、特定のセルに関する追加情報の提供を可能にします。Excel ファイルを操作する際、さまざまな理由でハイパーリンクを操作する必要があるかもしれません。たとえば、ファイル内のすべてのハイパーリンクを抽出して分析を行ったり、正確性を保つために古いハイパーリンクを修正したり、ファイルの使いやすさを向上させるために壊れたハイパーリンクを削除したりすることが考えられます。本記事では、Spire.XLS for .NET を使用して C# で Excel ファイルのハイパーリンクを抽出、変更、および削除する方法を説明します。 Excel ファイルからハイパーリンクを抽出する Excel ファイル内のハイパーリンクを変更する Excel ファイルからハイパーリンクを削除する Spire.XLS for .NET をインストールします まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。 PM> Install-Package Spire.XLS Excel ファイルからハイパーリンクを抽出する Excel ワークブックから他のシステム(例えばデータベース)にデータを移行する際、そのデータに関連付けられたハイパーリンクを保持する必要がある場合、事前にハイパーリンクを抽出することが必要です。以下の手順で、C# で Spire.XLS for .NET を使用して Excel ファイルからハイパーリンクを抽出する方法を示します。 Workbook クラスのインスタンスを初期化します。 Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。 Workbook.Worksheets[int index] プロパティを使用して特定のワークシートを取得します。 Worksheet.Hyperlinks プロパティを使用して、ワークシート内のすべてのハイパーリンクのコレクションを取得します。 StringBuilder クラスのインスタンスを初期化して、抽出したハイパーリンク情報を格納します。 ハイパーリンクのコレクションを反復処理します。 XlsHyperlink.Address と XlsHyperlink.Type プロパティを使用して、各ハイパーリンクのアドレスとタイプを取得します。 取得したアドレスとタイプを StringBuilder インスタンスに追加します。 File.WriteAllText() メソッドを使用して、StringBuilder インスタンスの内容をテキストファイルに書き込みます。 C# using Spire.Xls; using Spire.Xls.Collections; using Spire.Xls.Core.Spreadsheet; using System.IO; using System.Text; namespace ExtractHyperlinks { internal class Program { static void Main(string[] args) { //Workbookクラスのインスタンスを初期化 Workbook workbook = new Workbook(); //Excelファイルを読み込む workbook.LoadFromFile("Links.xlsx"); //最初のワークシートを取得 Worksheet sheet = workbook.Worksheets[0]; //ワークシート内のすべてのハイパーリンクのコレクションを取得 HyperLinksCollection hyperLinks = sheet.HyperLinks; //StringBuilderクラスのインスタンスを初期化 StringBuilder sb = new StringBuilder(); //コレクション内のハイパーリンクを繰り返し処理 foreach (XlsHyperLink hyperlink in hyperLinks) { //ハイパーリンクのアドレスを取得 string address = hyperlink.Address; //ハイパーリンクのタイプを取得 HyperLinkType type = hyperlink.Type; //StringBuilderインスタンスにハイパーリンクのアドレスとタイプを追加 sb.AppendLine("リンクアドレス: " + address); sb.AppendLine("リンクタイプ: " + type.ToString()); sb.AppendLine(); } //StringBuilderインスタンスの内容をテキストファイルに書き込む File.WriteAllText("output/Excelのハイパーリンクを取得.txt", sb.ToString()); workbook.Dispose(); } } } Excel ファイル内のハイパーリンクを変更する 誤ったリソースにリンクしてしまったり、ハイパーリンク作成時に URL を間違えて入力した場合、ハイパーリンクを修正して誤りを正す必要があります。以下の手順で、Excel ファイル内の既存のハイパーリンクを変更する方法を示します。 Workbook クラスのインスタンスを初期化します。 Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。 Workbook.Worksheets[int index] プロパティを使用して特定のワークシートを取得します。 Worksheet.Hyperlinks プロパティを使用して、ワークシート内のすべてのハイパーリンクのコレクションを取得します。 コレクション内の最初のハイパーリンクを取得します。 XlsHyperlink.TextToDisplay と XlsHyperlink.Address プロパティを使用して、ハイパーリンクの表示テキストとアドレスを修正します。 Workbook.SaveToFile() メソッドを使用してワークブックを保存します。 C# using Spire.Xls; using Spire.Xls.Collections; using Spire.Xls.Core.Spreadsheet; namespace ModifyHyperlinks { internal class Program { static void Main(string[] args) { //Workbookクラスのインスタンスを初期化 Workbook workbook = new Workbook(); //Excelファイルを読み込む workbook.LoadFromFile("Links.xlsx"); //最初のワークシートを取得 Worksheet sheet = workbook.Worksheets[0]; //ワークシート内のすべてのハイパーリンクのコレクションを取得 HyperLinksCollection links = sheet.HyperLinks; //ハイパーリンクを取得 XlsHyperLink hyperLink = links[3]; //ハイパーリンクの表示テキストとアドレスを変更 hyperLink.TextToDisplay = "ビングを訪問"; hyperLink.Address = "http://www.bing.com/"; //結果ファイルを保存 workbook.SaveToFile("output/Excelのハイパーリンクを変更.xlsx"); workbook.Dispose(); } } } Excel ファイルからハイパーリンクを削除する 不要なハイパーリンクを削除することで、ワークシートをより整然とし、プロフェッショナルな印象にすることができます。以下の手順で、Excel ファイルから特定のハイパーリンクを削除する方法を示します。 Workbook クラスのインスタンスを初期化します。 Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。 Workbook.Worksheets[int index] プロパティを使用して特定のワークシートを取得します。 Worksheet.Hyperlinks.RemoveAt(int index) メソッドを使用して、ワークシートから特定のハイパーリンクを削除します。 Workbook.SaveToFile() メソッドを使用して結果ファイルを保存します。 C# using Spire.Xls; namespace RemoveHyperlinks { internal class Program { static void Main(string[] args) { //Workbookクラスのインスタンスを初期化 Workbook workbook = new Workbook(); //Excelファイルを読み込む workbook.LoadFromFile("Links.xlsx"); //最初のワークシートを取得 Worksheet sheet = workbook.Worksheets[0]; //最初のハイパーリンクを削除し、表示テキストを保持 sheet.HyperLinks.RemoveAt(0); //セルのすべての内容を削除 //sheet.Range["B2"].ClearAll(); //結果ファイルを保存 workbook.SaveToFile("output/Excelからハイパーリンクを削除.xlsx", ExcelVersion.Version2013); workbook.Dispose(); } } } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。