[파이썬] 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) 구현
[파이썬] 파일 경로에서 파일 이름만 리스트에 저장
기능 폴더 경로가 들어있는 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']]