728x90
반응형
기능
openpyxl 패키지를 이용하여 엑셀에 하이퍼링크를 만들어준다.
셀 값이 폴더명일 때, 그 셀을 하이퍼링크로 만들어준다.
구현
user_path : 최상위 폴더
# 병합된 셀 구별
def parser_merged_cell(sheet: Worksheet, row, col):
cell = sheet.cell(row=row, column=col)
if isinstance(cell, MergedCell): # judge whether the cell is a merged cell
for merged_range in ws.merged_cells.ranges: # loop to find the merge range to which the cell belongs
if cell.coordinate in merged_range:
#Gets the cell in the upper left corner of the merge range and returns it as the value of the cell
cell = sheet.cell(row=merged_range.min_row, column=merged_range.min_col)
break
return cell
# 하이퍼링크 생성 (셀 클릭하면 바로 가게 만들기)
for col in reversed(range(ws.max_column)):
for row in range(ws.max_row):
cell = ws.cell(row = row + 1, column= col + 1)
if cell.value != None :
str_value_org= '%s' % (cell.value)
str_hyperlink = user_path
for col_num in range(col + 1):
str_hyperlink = str_hyperlink + ('\%s' % (parser_merged_cell(ws, row + 1 , col_num + 1).value))
ws.cell(row = row + 1, column= col + 1).value = '=HYPERLINK("%s", "%s")' % (str_hyperlink, str_value_org)
#print(str_hyperlink)
continue
결과
728x90
반응형
'집중 - 어제보다 나아가자 > [개발] 파이썬 🍕' 카테고리의 다른 글
[파이썬] openpyxl 저장 오류 (0) | 2022.04.27 |
---|---|
[파이썬] openpyxl 셀 속성 변경 (테두리 지정, 가로 세로 맞춤) (0) | 2022.04.26 |
[파이썬] openpyxl 엑셀 세로로 같은 셀 병합 (0) | 2022.04.24 |
[파이썬] openpyxl 엑셀 열 너비 자동 조절 (0) | 2022.04.23 |
최근댓글