0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでExcelワークシートにハイパーリンクを追加、変更、削除する

Last updated at Posted at 2024-10-24

Excelブックを作成する際、ドキュメント内のリンクや、レポートの自動生成、外部リソースへの迅速なアクセスパスを作成することがよくあります。ハイパーリンクを使用することで、ワークシートと外部リソース、ファイル、またはウェブページをシームレスに接続し、データのインタラクティブ性や可読性を向上させることができます。迅速なナビゲーション、動的なコンテンツ更新、複数のデータソースの統合を目的とした場合でも、ハイパーリンクの自動管理を習得することは非常に重要です。Pythonを使うことで、ハイパーリンクの追加、変更、削除を簡単に一括処理でき、効率を大幅に向上させ、手作業のミスを減らすことができます。

本記事では、Pythonを使用してExcelワークシート内のハイパーリンクを追加、変更、削除する方法をご紹介します。

この記事で使用する方法には、Spire.XLS for Pythonが必要です。PyPIからインストールします:pip install spire.xls

無料ライセンスの申請

PythonでExcelワークシート内のテキストにハイパーリンクを挿入

Excelワークシート内にテキストハイパーリンクを追加するには、セルを基準とするのが一般的です。特定のセルにテキストハイパーリンクを追加すると、セル内のすべてのテキストや数値がハイパーリンクの一部として機能します。Spire.XLSのWorksheet.Hyperlinks.Add(cell: CellRange)メソッドを使用して、指定したセルにテキストハイパーリンクを追加し、Hyperlinkクラスのプロパティを通じてリンクの種類やリンク先を設定できます。以下は、ウェブページ、メール、外部ドキュメント、ドキュメント内の位置、およびUNCパスへのハイパーリンクをExcelセルに挿入する手順です:

  1. 必要なモジュールをインポート:WorkbookHyperlinkTypeFileFormat
  2. Workbookインスタンスを作成。
  3. Workbook.Worksheets.get_Item()メソッドを使ってワークシートを取得。
  4. Worksheet.Range[]プロパティを使ってセルを取得。
  5. Worksheet.Hyperlinks.Add(cell: CellRange)メソッドを使ってセルにハイパーリンクを挿入。
  6. Hyperlink.Typeプロパティを使ってハイパーリンクの種類を設定。
  7. Hyperlink.Addressでリンク先を設定。
  8. Hyperlink.TextToDisplayで表示テキストを設定。
  9. Workbook.SaveToFile()メソッドを使用してブックを保存。
  10. リソースを解放。

コード例

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ワークシートにハイパーリンクを挿入

PythonでExcelワークシート内の画像にハイパーリンクを挿入

ワークシート内の画像にハイパーリンクを挿入するには、まずWorksheet.Pictures.Add()メソッドを使用して画像を挿入し、次にExcelPicture.SetHyperLink(linkString: str, isExternal: bool)メソッドを使用して画像にハイパーリンクを挿入します。以下は操作手順の例です:

  1. 必要なモジュールをインポート:WorkbookFileFormat
  2. Workbookインスタンスを作成。
  3. Workbook.Worksheets.get_Item()メソッドを使ってワークシートを取得。
  4. Worksheet.Pictures.Add()を使って指定位置に画像を追加。
  5. ExcelPicture.SetHyperLink()メソッドを使って画像にハイパーリンクを追加。
  6. Workbook.SaveToFile()メソッドを使ってブックを保存。
  7. リソースを解放。

コード例

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ワークシート内の画像にハイパーリンクを挿入

PythonでExcelワークシート内のハイパーリンクを変更

CellRange.Hyperlinks.get_Item(0)メソッドを使って、セルから指定のハイパーリンクを直接取得するか、Worksheet.Hyperlinks.get_Item()メソッドを使用してワークシート内のハイパーリンクコレクションから取得することができます。その後、Hyperlinkクラスのプロパティを使用して、リンクの種類、アドレス、および表示テキストを変更できます。操作手順は以下の通りです:

  1. 必要なモジュールをインポート:WorkbookFileFormat
  2. Workbookインスタンスを作成。
  3. Workbook.Worksheets.get_Item()メソッドを使ってワークシートを取得。
  4. Worksheet.Range[]プロパティでセルを取得し、CellRange.Hyperlinks.get_Item(0)メソッドでハイパーリンクを取得するか、Worksheet.Hyperlinks.get_Item()メソッドを使ってワークシート内のハイパーリンクコレクションから取得。
  5. Hyperlink.Typeプロパティを使ってリンクの種類を変更し、Hyperlink.Addressでリンク先アドレスを変更、Hyperlink.TextToDisplayで表示テキストを変更。
  6. Workbook.SaveToFile()メソッドを使ってブックを保存。
  7. リソースを解放。

コード例

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ワークシート内のハイパーリンクを変更

PythonでExcelワークシート内のハイパーリンクを削除

Worksheet.Hyperlinks.RemoveAt()メソッドを使って、ワークシート内の指定したハイパーリンクを削除するか、Worksheet.Hyperlinks.Clear()メソッドでワークシート内のすべてのハイパーリンクを削除できます。操作手順の例は以下の通りです:

  1. 必要なモジュールをインポート:WorkbookFileFormat
  2. Workbookインスタンスを作成。
  3. Workbook.Worksheets.get_Item()メソッドを使ってワークシートを取得。
  4. Worksheet.Hyperlinks.RemoveAt()メソッドを使って、ワークシート内の指定したハイパーリンクを削除、またはWorksheet.Hyperlinks.Clear()メソッドを使ってすべてのハイパーリンクを削除。
  5. Workbook.SaveToFile()メソッドを使ってブックを保存。
  6. リソースを解放。

コード例

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ワークシート内のハイパーリンクを削除

本記事では、Pythonを使用してExcelワークシート内のハイパーリンクを挿入、変更、削除する方法を説明しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?