Excelブックを作成する際、ドキュメント内のリンクや、レポートの自動生成、外部リソースへの迅速なアクセスパスを作成することがよくあります。ハイパーリンクを使用することで、ワークシートと外部リソース、ファイル、またはウェブページをシームレスに接続し、データのインタラクティブ性や可読性を向上させることができます。迅速なナビゲーション、動的なコンテンツ更新、複数のデータソースの統合を目的とした場合でも、ハイパーリンクの自動管理を習得することは非常に重要です。Pythonを使うことで、ハイパーリンクの追加、変更、削除を簡単に一括処理でき、効率を大幅に向上させ、手作業のミスを減らすことができます。
本記事では、Pythonを使用してExcelワークシート内のハイパーリンクを追加、変更、削除する方法をご紹介します。
- PythonでExcelワークシート内のテキストにハイパーリンクを挿入
- PythonでExcelワークシート内の画像にハイパーリンクを挿入
- PythonでExcelワークシート内のハイパーリンクを変更
- PythonでExcelワークシート内のハイパーリンクを削除
この記事で使用する方法には、Spire.XLS for Pythonが必要です。PyPIからインストールします:pip install spire.xls
。
PythonでExcelワークシート内のテキストにハイパーリンクを挿入
Excelワークシート内にテキストハイパーリンクを追加するには、セルを基準とするのが一般的です。特定のセルにテキストハイパーリンクを追加すると、セル内のすべてのテキストや数値がハイパーリンクの一部として機能します。Spire.XLSのWorksheet.Hyperlinks.Add(cell: CellRange)
メソッドを使用して、指定したセルにテキストハイパーリンクを追加し、Hyperlink
クラスのプロパティを通じてリンクの種類やリンク先を設定できます。以下は、ウェブページ、メール、外部ドキュメント、ドキュメント内の位置、およびUNCパスへのハイパーリンクをExcelセルに挿入する手順です:
- 必要なモジュールをインポート:
Workbook
、HyperlinkType
、FileFormat
。 -
Workbook
インスタンスを作成。 -
Workbook.Worksheets.get_Item()
メソッドを使ってワークシートを取得。 -
Worksheet.Range[]
プロパティを使ってセルを取得。 -
Worksheet.Hyperlinks.Add(cell: CellRange)
メソッドを使ってセルにハイパーリンクを挿入。 -
Hyperlink.Type
プロパティを使ってハイパーリンクの種類を設定。 -
Hyperlink.Address
でリンク先を設定。 -
Hyperlink.TextToDisplay
で表示テキストを設定。 -
Workbook.SaveToFile()
メソッドを使用してブックを保存。 - リソースを解放。
コード例
from spire.xls import Workbook, HyperLinkType, FileFormat
# Workbookインスタンスを作成
workbook = Workbook()
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# ウェブページのハイパーリンクを追加
cell1 = sheet.Range[2, 2]
webLink = sheet.HyperLinks.Add(cell1)
webLink.Type = HyperLinkType.Url
webLink.TextToDisplay = "ウェブページのハイパーリンク"
webLink.Address = "https://www.google.com"
# メールアドレスのハイパーリンクを追加
cell2 = sheet.Range[4, 2]
emailLink = sheet.HyperLinks.Add(cell2)
emailLink.Type = HyperLinkType.Url
emailLink.TextToDisplay = "メールアドレスのハイパーリンク"
emailLink.Address = "mailto:example@example.com"
# 外部ファイルのハイパーリンクを追加
cell3 = sheet.Range[6, 2]
fileLink = sheet.HyperLinks.Add(cell3)
fileLink.Type = HyperLinkType.File
fileLink.TextToDisplay = "外部ファイルのハイパーリンク"
fileLink.Address = "C:\\Users\\Public\\Documents\\Example.pdf"
# ドキュメント内部のハイパーリンクを追加
cell4 = sheet.Range[8, 2]
internalLink = sheet.HyperLinks.Add(cell4)
internalLink.Type = HyperLinkType.Workbook
internalLink.TextToDisplay = "ドキュメント内部のハイパーリンク"
internalLink.Address = "Sheet2!A1"
# UNCパスのハイパーリンクを追加
cell5 = sheet.Range[10, 2]
uncLink = sheet.HyperLinks.Add(cell5)
uncLink.Type = HyperLinkType.Unc
uncLink.TextToDisplay = "UNCパスのハイパーリンク"
uncLink.Address = "\\\\server\\share\\file.txt"
# フォントを設定し、列幅を自動調整
sheet.Range.Style.Font.FontName = "Arial"
sheet.Range.Style.Font.Size = 14
for i in range(sheet.Range.ColumnCount):
sheet.AutoFitColumn(i + 1)
# ワークブックを保存
workbook.SaveToFile("output/TextHyperlinkExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()
PythonでExcelワークシート内の画像にハイパーリンクを挿入
ワークシート内の画像にハイパーリンクを挿入するには、まずWorksheet.Pictures.Add()
メソッドを使用して画像を挿入し、次にExcelPicture.SetHyperLink(linkString: str, isExternal: bool)
メソッドを使用して画像にハイパーリンクを挿入します。以下は操作手順の例です:
- 必要なモジュールをインポート:
Workbook
、FileFormat
。 -
Workbook
インスタンスを作成。 -
Workbook.Worksheets.get_Item()
メソッドを使ってワークシートを取得。 -
Worksheet.Pictures.Add()
を使って指定位置に画像を追加。 -
ExcelPicture.SetHyperLink()
メソッドを使って画像にハイパーリンクを追加。 -
Workbook.SaveToFile()
メソッドを使ってブックを保存。 - リソースを解放。
コード例
from spire.xls import Workbook, FileFormat
# Workbookインスタンスを作成
workbook = Workbook()
# 最初の既定ワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# 指定位置に画像を追加
picture = sheet.Pictures.Add(3, 2, "image1.jpg")
# 画像にハイパーリンクを追加
picture.SetHyperLink("https://www.bing.com/", True)
# ワークブックを保存
workbook.SaveToFile("output/PictureHyperlinkExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()
PythonでExcelワークシート内のハイパーリンクを変更
CellRange.Hyperlinks.get_Item(0)
メソッドを使って、セルから指定のハイパーリンクを直接取得するか、Worksheet.Hyperlinks.get_Item()
メソッドを使用してワークシート内のハイパーリンクコレクションから取得することができます。その後、Hyperlink
クラスのプロパティを使用して、リンクの種類、アドレス、および表示テキストを変更できます。操作手順は以下の通りです:
- 必要なモジュールをインポート:
Workbook
、FileFormat
。 -
Workbook
インスタンスを作成。 -
Workbook.Worksheets.get_Item()
メソッドを使ってワークシートを取得。 -
Worksheet.Range[]
プロパティでセルを取得し、CellRange.Hyperlinks.get_Item(0)
メソッドでハイパーリンクを取得するか、Worksheet.Hyperlinks.get_Item()
メソッドを使ってワークシート内のハイパーリンクコレクションから取得。 -
Hyperlink.Type
プロパティを使ってリンクの種類を変更し、Hyperlink.Address
でリンク先アドレスを変更、Hyperlink.TextToDisplay
で表示テキストを変更。 -
Workbook.SaveToFile()
メソッドを使ってブックを保存。 - リソースを解放。
コード例
from spire.xls import Workbook, HyperLinkType
# Workbookインスタンスを作成
workbook = Workbook()
# Excelファイルをロード
workbook.LoadFromFile("output/TextHyperlinkExcel.xlsx")
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# セルを取得し、そのハイパーリンクを取得
cell = sheet.Range[2, 2]
hyperlink = cell.Hyperlinks.get_Item(0)
# ワークシートのハイパーリンクコレクションから直接ハイパーリンクを取得することも可能
# hyperlink = sheet.HyperLinks.get_Item(0)
# ハイパーリンクのタイプ、アドレス、表示テキストを変更
hyperlink.Type = HyperLinkType.File
hyperlink.Address = "C:\\Documents\\Document.pdf"
hyperlink.TextToDisplay = "サンプルドキュメント"
# ファイルを保存
workbook.SaveToFile("output/ModifyHyperlinkExcel.xlsx")
workbook.Dispose()
PythonでExcelワークシート内のハイパーリンクを削除
Worksheet.Hyperlinks.RemoveAt()
メソッドを使って、ワークシート内の指定したハイパーリンクを削除するか、Worksheet.Hyperlinks.Clear()
メソッドでワークシート内のすべてのハイパーリンクを削除できます。操作手順の例は以下の通りです:
- 必要なモジュールをインポート:
Workbook
、FileFormat
。 -
Workbook
インスタンスを作成。 -
Workbook.Worksheets.get_Item()
メソッドを使ってワークシートを取得。 -
Worksheet.Hyperlinks.RemoveAt()
メソッドを使って、ワークシート内の指定したハイパーリンクを削除、またはWorksheet.Hyperlinks.Clear()
メソッドを使ってすべてのハイパーリンクを削除。 -
Workbook.SaveToFile()
メソッドを使ってブックを保存。 - リソースを解放。
コード例
from spire.xls import Workbook
# Workbookインスタンスを作成
workbook = Workbook()
# Excelファイルをロード
workbook.LoadFromFile("output/TextHyperlinkExcel.xlsx")
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# 最初のハイパーリンクを削除
sheet.HyperLinks.RemoveAt(1)
# すべてのハイパーリンクを削除
# sheet.HyperLinks.Clear()
# ワークブックを保存
workbook.SaveToFile("output/RemoveHyperlinkExcel.xlsx")
workbook.Dispose()
本記事では、Pythonを使用してExcelワークシート内のハイパーリンクを挿入、変更、削除する方法を説明しました。