SWDesk
[Python] 엑셀 내 시트간 이동 링크 넣기
bizmaker
2025. 4. 3. 18:30
다수 개의 시트가 존재하는 엑셀파일의 경우,
각 시트를 이동하는 과정은 1) 시트탭을 하나씩 살펴가면서 좌우로 이동해야 하고 2) 시트명이 유사한 경우 잘못 누를 수 있고 3) 특정 시트를 찾기 위해 전체 시트를 여러 번 훑어야 하는 낭비가 발생할 수 있음.
Python읜 openpyxl을 이용하여 데이터를 관리하는 경우에도 유사한 문제가 발생할 수 있음.
이를 위해 'Overview' 시트를 만들고 이 시트 내 데이터에 나머지 시트의 개괄적인 정보와 함께 이 시트로 직접 이동할 수 있도록 하는 링크를 저장하고자 함.
* 엑셀 함수로는 '=HYPERLINK("Sheet1!A1", "Sheet1-Link")'
[코드]
def Test_HyperLink():
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
# 엑셀 워크북 생성
wb = Workbook()
# 기본 시트 이름 변경
a_sheet = wb.active
a_sheet.title = "Index"
# 생성할 시트 이름 리스트
sheet_names = ["Sheet1", "Sheet2", "Sheet3"]
# 시트 생성
def create_sheets(wb, sheet_names):
for name in sheet_names:
wb.create_sheet(title=name)
# 하이퍼링크 추가 함수
def add_hyperlinks(sheet, sheet_names):
sheet.append(["Sheet Name", "Link"])
for idx, name in enumerate(sheet_names, start=2):
link = f"'#'{name}'!A1" # 시트로 이동하는 하이퍼링크
sheet[f"A{idx}"] = name
sheet[f"B{idx}"].value = f"Go to {name}"
sheet[f"B{idx}"].hyperlink = link
sheet[f"B{idx}"].style = "Hyperlink"
# 시트 생성 및 하이퍼링크 설정
create_sheets(wb, sheet_names)
add_hyperlinks(a_sheet, sheet_names)
# 엑셀 파일 저장
wb.save("excel_with_links.xlsx")
print("엑셀 파일이 생성되었습니다: excel_with_links.xlsx")
반응형