들어가기 전에
하이퍼링크는 단순히 클릭 가능한 텍스트나 이미지 정도가 아니라 정적인 스프레드시트를 동적이고 상호 연결된 정보 허브로 바꿀 수 있는 연결 구조입니다. 하이퍼링크를 사용하면 Excel 통합 문서의 여러 부분을 원활하게 연결하여 사용자가 관련 데이터, 분석 및 지원 문서 사이를 쉽게 탐색할 수 있습니다. 파이썬을 사용하여 Excel에서 하이퍼링크를 추가, 업데이트, 추출 및 삭제하는 방법을 소개합니다.
※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.
- 원문: Add, Update, Extract or Delete Hyperlinks in Excel with Python
- URL: https://medium.com/@alice.yang_10652/add-update-extract-or-delete-hyperlinks-in-excel-with-python-168efce7f73d
Excel에서 하이퍼링크 작업을 위한 파이썬 라이브러리
Python으로 Excel에서 하이퍼링크를 추가, 업데이트, 추출 및 삭제하려면 Python용 Spire.XLS 라이브러리를 사용할 수 있습니다. Python용 Spire.XLS는 사용하기 쉽고 기능이 풍부한 라이브러리로, Python 애플리케이션 내에서 Excel 파일을 만들고, 읽고, 편집하고, 변환할 수 있습니다.
이 라이브러리를 사용하면 XLS, XLSX, XLSB, XLSM 및 ODS와 같은 다양한 스프레드시트 형식으로 작업할 수 있습니다. 또한 Excel 파일을 PDF, HTML, CSV, 텍스트, 이미지, XML, SVG, ODS, PostScript 및 XPS와 같은 다른 유형의 파일 형식으로 렌더링할 수도 있습니다. 터미널에서 다음 명령을 실행하여 PyPI에서 Python용 Spire.XLS를 설치할 수 있습니다.
pip install Spire.xls
설치에 대한 자세한 내용은 공식 문서에서 확인할 수 있습니다(Windows용, Mac용).
파이썬으로 Excel에 하이퍼링크 추가하기
Python용 Spire.XLS를 사용하면 프로그래밍 방식으로 연결되는 텍스트 하이퍼링크를 추가할 수 있습니다.
- 외부 웹사이트
- 이메일 주소
- 외부 파일
- Excel 파일 내의 특정 부분
- UNC 주소
텍스트 기반 하이퍼링크 외에도 Python용 Spire.XLS를 사용하면 이미지 하이퍼링크를 생성할 수 있어 Excel 워크시트의 이미지를 클릭 가능한 링크로 변환할 수 있습니다. 다음 예시는 Python을 사용하여 Excel 파일에 텍스트 하이퍼링크와 이미지 하이퍼링크를 추가하는 방법을 보여줍니다.
from spire.xls import *
from spire.xls.common import *
# Create an object of the Workbook class
workbook = Workbook()
# Get the first worksheet
sheet = workbook.Worksheets[0]
# Add a text hyperlink that connects to an external website
cell1 = sheet.Range["B2"]
webLink = sheet.HyperLinks.Add(cell1)
webLink.Type = HyperLinkType.Url
webLink.TextToDisplay = "Medium.com"
webLink.Address = "https://medium.com/"
# Add a text hyperlink that connects to an email address
cell2 = sheet.Range["B4"]
mailLink = sheet.HyperLinks.Add(cell2)
mailLink.Type = HyperLinkType.Url
mailLink.TextToDisplay = "Contact Us"
mailLink.Address = "support@mycompany.com"
# Add a text hyperlink that connects to an external file
cell3 = sheet.Range["B6"]
fileLink = sheet.HyperLinks.Add(cell3)
fileLink.Type = HyperLinkType.File
fileLink.TextToDisplay = "Open Report.xlsx"
fileLink.Address = "C:\\Users\\Administrator\\Desktop\\Report.xlsx"
# Add a text hyperlink that connects to a cell of another sheet in the same workbook
cell4 = sheet.Range["B8"]
linkToSheet = sheet.HyperLinks.Add(cell4)
linkToSheet.Type = HyperLinkType.Workbook
linkToSheet.TextToDisplay = "Go to Sheet2!A1"
linkToSheet.Address = "Sheet2!A1"
# Insert an image into the worksheet
image = sheet.Pictures.Add(10, 2, "Logo.png")
# image.Width = 50
# image.Height = 50
image.LeftColumnOffset = 25
image.TopRowOffset = 25
# Add a hyperlink to the image
image.SetHyperLink("https://medium.com/", True)
# Set the width of the second column
sheet.SetColumnWidth(2, 17)
# Set the height of the tenth row
sheet.SetRowHeight(10, image.Height)
# Save the resulting file
workbook.SaveToFile("AddHyperlinks.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
파이썬으로 Excel에서 하이퍼링크 업데이트하기
대상 URL을 변경하거나 표시 텍스트를 업데이트하는 등 Excel 워크시트의 기존 하이퍼링크를 변경해야 하는 경우가 있을 수 있습니다. 다음 예는 Python을 사용하여 Excel 파일에서 하이퍼링크의 대상 URL과 표시 텍스트를 업데이트하는 방법을 보여줍니다.
from spire.xls import *
from spire.xls.common import *
# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file containing hyperlinks
workbook.LoadFromFile("AddHyperlinks.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]
# Get the first hyperlink
link = sheet.HyperLinks[0]
# Or get the hyperlink in a specific cell
# link = sheet.Range["B2"].Hyperlinks[0]
# Update the display text of the hyperlink
link.TextToDisplay = "Google.com"
# Update the destination URL of the hyperlink
link.Address = "https://www.google.com/"
# Save the workbook to a file
workbook.SaveToFile("UpdateHyperlink.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
파이썬으로 Excel에서 하이퍼링크 추출하기
Excel에서 하이퍼링크를 추출하는 것은 하이퍼링크 주소를 개별적으로 작업하거나 특정 작업을 수행해야 할 때 유용할 수 있습니다. 다음 예는 Python으로 Excel 파일에서 하이퍼링크를 추출하는 방법을 보여줍니다.
from spire.xls import *
from spire.xls.common import *
# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file containing hyperlinks
workbook.LoadFromFile("AddHyperlinks.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]
# Get the hyperlinks in the worksheet
linkCollection = sheet.HyperLinks
# Create a list to store the extracted hyperlink information
hyperlinks = []
# Extract the hyperlink information
for link in linkCollection:
# Get the display text of each hyperlink
displayText = link.TextToDisplay
# Get the address of each hyperlink
address = link.Address
# Append the display text and address to the list
hyperlinks.append("Display Text: " + displayText)
hyperlinks.append("Address: " + address)
hyperlinks.append("")
# Specify the output file path
output_file = "hyperlinks.txt"
# Write the hyperlink information to the text file
with open(output_file, "w", encoding="utf-8") as file:
for hyperlink in hyperlinks:
file.write(hyperlink + "\n")
print(f"Hyperlinks saved to '{output_file}'.")
workbook.Dispose()
파이썬으로 Excel에서 하이퍼링크 삭제
하이퍼링크는 때때로 워크시트를 복잡하게 만들어 콘텐츠를 읽고 탐색하기 어렵게 만들 수 있습니다. 원치 않는 하이퍼링크를 제거하면 워크시트를 깔끔하고 체계적으로 유지하는 데 도움이 될 수 있습니다. 다음 예는 Python으로 Excel 파일에서 하이퍼링크를 제거하는 방법을 보여줍니다.
from spire.xls import *
from spire.xls.common import *
# Create an object of the Workbook class
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("AddHyperlinks.xlsx")
# Get the first worksheet
sheet = workbook.Worksheets[0]
# Get the hyperlinks in the worksheet
linkCollection = sheet.HyperLinks
# Remove the hyperlinks
for i in range(linkCollection.Count - 1, -1, -1):
sheet.HyperLinks.RemoveAt(i)
# Or remove the hyperlink from a specific cell
# sheet.Range["B2"].Hyperlinks.RemoveAt(0)
# Save the workbook to a file
workbook.SaveToFile("DeleteHyperlinks.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
'Python' 카테고리의 다른 글
데이터 분석가를 위한 웹 스크래핑: 데이터 수집 프로세스 마스터하기 (2) | 2024.08.17 |
---|---|
파이썬에서 Excel 스프레드시트 작업하기 (1) | 2024.08.15 |
파이썬을 사용하여 다양한 소스의 데이터를 Excel로 가져오기 (0) | 2024.08.03 |
파이썬을 사용하여 PowerPoint에서 테이블 만들기(또는 추출하기) (0) | 2024.07.21 |
파이썬에서 PDF 테이블을 텍스트, Excel 및 CSV로 추출하는 방법 (0) | 2024.07.20 |