[파이썬] openpyxl 저장 오류
기능 openpyxl 의 wb.save() 가 오류나는 경우 시도해보자. 일반적으로 저장하려는 엑셀 파일이 열려있으면 오류가 생긴다. 구현 import win32com.client # openpyxl은 import 되어있다고 가정 try: wb.save(filename=fileName) except: excelFile = win32com.client.GetObject(fileDirectory) excelFile.Close(True) wb.save(filename=fileName)
[파이썬] openpyxl 셀 속성 변경 (테두리 지정, 가로 세로 맞춤)
기능 엑셀 셀 속성을 변경한다. 아래 구현 코드는 셀 좌상단 + 테두리를 지정해준다. align_gt = Alignment(horizontal='general', vertical='top',shrinkToFit=True) horizontal 변수 (셀 가로 속성) "general", "left", "center", "right", "fill", "justify", "centerContinuous", "distributed" vertical 변수 (셀 세로 속성) "top", "center", "bottom", "justify", "distributed", 구현 #엑셀 셀 속성 align_gt = Alignment(horizontal='general', vertical='top',shrinkToFit=Tr..
[파이썬] openpyxl 하이퍼링크 만들기
기능 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 merg..
[파이썬] openpyxl 엑셀 세로로 같은 셀 병합
기능 2차원 리스트의 원소를 이용하여 세로로 같은 값을 가진 셀을 병합한다. 이 내용은 이전글인 [ 2022.04.22 - [집중 - 어제보다 나아가자/[개발] 파이썬 🍕] - [파이썬] openpyxl 엑셀에 2차원 리스트 원소 저장 ] 을 참고하자. 이전 글에서 2차원 리스트의 원소를 엑셀에 저장하고, 이 글에서는 세로로 같은 값을 가지는 셀을 병합한다. 구현 #엑셀 세로로 같은 내용이면 병합 for col in range(cols): str_cur = str_next = '' start_row = end_row = 0 for row in range(rows): try: #키 값이 존재하는지 확인 key = list_path_splited[row][col] #존재한다면 키값 받기 if row < ro..
[파이썬] openpyxl 엑셀 열 너비 자동 조절
기능 엑셀 열 너비를 자동 조절해주는 기능입니다. 구현 def set_column_length_auto(): for col in ws.columns: new_column_length = max(len(str(cell.value)) for cell in col) new_column_letter = (get_column_letter(col[0].column)) if new_column_length > 0: ws.column_dimensions[new_column_letter].width = new_column_length * 1.23 set_column_length_auto() fileName = 'test_column_length_auto.xlsx' wb.save(filename=fileName) 구현
[파이썬] openpyxl 엑셀에 2차원 리스트 원소 저장
기능 엑셀에 2차원 리스트 원소를 저장한다. 구현 #excel에 list_path 쓰기 wb = openpyxl.Workbook() ws = wb.active for list in list_path_splited: ws.append(list) if(len(list) > cols): cols = len(list) rows = len(list_path_splited) fileName = 'test_list_path.xlsx' wb.save(filename=fileName) 결과 2차원 리스트인 list_path_splited 원소의 값을 엑셀에 저장.
[파이썬] 파일 경로에서 파일 이름만 리스트에 저장
기능 폴더 경로가 들어있는 1차원 리스트에서 폴더 이름으로 이루어진 2차원 리스트로 변경 구현 list_path_cutted.sort() for list in list_path_cutted: str_list = ''.join(list) list_path_splited.append(str_list.split('\\')) 구현 list_path_cutted -> list_path_slited 이전 : ['01_123\\01_111', '01_123\\02_222'] 이후 : [['01_123', '01_111'], ['01_123', '02_222']]
[파이썬] 리스트에서 중복 되는 폴더 경로 제거
기능 리스트에서 중복 되는 경로 제거 구현 #중복 제거 (예를들어 A 폴더 안에 A-1, A-2 폴더가 있는 경우에 는 A-1, A-2에 관한 경로만 표시하면 되지 A의 경로는 표시할 필요가 없다.) def delete_duplicate_folder(work_list): list_path_to_delete = [] for key in work_list: for search in work_list: str_key = "".join(key) + '\\' # 같은 폴더 안에 중복되는 폴더 명이 있다면 삭제하므로 하위폴더부터 삭제해주자 if str_key in search and key != search: # 본인 제외 자신을 포함하는 경로가 있다면 삭제 리스트에 추가 list_path_to_delete.app..
[파이썬] 특정 경로의 폴더 모두 가져오기
기능 특정 조건을 만족하는 폴더 경로 모두 가져오기 구현 import os user_path = os.getcwd() list_path_hyperlink = [] #user path 내의 폴더 경로 모두 가져오기 only_one = True invalid_folder_path = ['(*&(&!@(#&'] for (path, dir, files) in os.walk(user_path): satisfaction_folder=0 for dirname in dir: str_path = "%s" % (path) str_dirname = "%s" % (dirname) str_file_path = "%s\%s" % (path, dirname) #특정 조건 (숫자숫자_)을 만족하는 폴더만 가져오기 // invalid..