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
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기