파이썬으로 엑셀파일을 다루는 라이브러리

코드를 작성하는 시간이 필요하지만, 엑셀로 작업하는것보다 처리속도가 훨씬 빨라, 반복적으로 같은 업무를 처리해야하는 경우 유용하다.

설치
pip install openpyxl
사용방법
import openpyxl as xl

# 엑셀파일 객체화
newWb = xl.Workbook() # 새로 만들기
loadWb = xl.load_workbook(파일명) # 엑셀파일 불러오기, 파일명은 절대경로를 추천
loadWb.save(파일명) # 저장하기
loadWb.close() # 엑셀파일 닫기 (finally에 사용하는 것을 권장)

# 시트 조작 (객체화된 엑셀 파일은 loadWb로 함)
selectWs = loadWb.active # 활성화된 시트 선택
loadWb.create_sheet(시트명) # 새로운 시트 생성
selectWs = loasWb[시트명] # 시트 선택
selectWs.title = 시트명 # 워크시트의 이름 변경

# 셀 조작 (row와 column은 1부터 시작)
cell = selectWs['A1'] # 셀 객체 (소문자 가능)
cells = selectWs['A1':'C3'] # 범위 지정 튜플 객체
# cells 반환 순서: (('A1','A2','A3'),('B1','B2','B3'),('C1','C2','C3'))
cellGroup = selectWs.column_dimensions.group('H','Z',hidden=True) # H행부터 Z행까지 숨김
cellGroup = selectWs.row_dimensions.group(3,10,hidden=True) # 3열부터 10열까지 숨김

selectWs['A1'].value = 셀내용 # 시트의 A1셀 내용을 변경
selectWs.cell(row,column,value) # 해당 행과 열의 내용 변경(행렬 모두 숫자)
selectWs.cell(row,column).value = 셀내용 # 위와 같은 동작
selectWs.append([A행,B행, ...]) # 마지막 열의 다음 열에 내용을 추가



# 디자인
from openpyxl import styles as ss

# 셀 색칠하기
cell.fill = ss.PatternFill(start_color='FFFFFF', fill_type='solid')
# 테두리그리기
cell.border = ss.Border(top=ss.Side(border_style='medium',color='000000'),
                        bottom=ss.Side(border_style='medium',color='000000'),
                        left=ss.Side(border_style='medium',color='000000'),
                        right=ss.Side(border_style='medium',color='000000'),
)
# 폰트 설정
cell.font = ss.Font(name=폰트명,
                    size=크기,
                    color=색상,
                    bold=True, # 두껍게
                    italic=False # 기울임체
                    underline='single', # 밑줄
                    strike=False # 취소선
)
# 글자 정렬
cell.alignment = ss.Alignment(horizontal='center' # 좌우 가운데 정렬
                              vertical='center' # 상하 가운데 정렬
                              indent=1 # 들여쓰기
)
# 셀 크기 변경
selectWs.column_dimensions['A'].width=15 # A행의 너비 변경
selectWs.row_dimensions[1].height=15 # 1열의 높이 변경

코드는 아니지만 진심 맨날 헷갈리는거.. row는 1열이고 column은 A행이다.

이거 적으면서도 또 반대로 적었다..

Posted in

댓글 남기기

호랑이는 죽어서 가죽을 남기고, 사람은 죽어서 블로그를 남긴다.에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기