본문 바로가기
프로그래밍/Python

Python_openpyxl_엑셀_01_시트 관련

by Choraengyi 2021. 1. 28.

1. openpyxl 설치

pip install openpyxl

 

2. 통합문서 생성, 저장

from openpyxl import Workbook   #openpyxl 모듈의 Workbook 함수 사용 가능하도록 하는 구문

wb = Workbook() #Workbook 생성, 통합문서 생성이라고 생각하면 됨 -> wb 변수에 할당
ws = wb.active  #Workbook 생성 시 최소 한개의 시트가 만들어짐, 활성화된 sheet 가져옴 -> wb 변수의 활성화된 sheet를 ws 에 할당

ws.title = '첫번째 시트' # 활성화된 sheet 인 ws 의 이름을 변경, 결과적으로 sheet 이름이 변경됨

wb.save("create_excel_test.xlsx")   # wb 통합문서를 저장하는 명령어, 파일이름 지정 가능

- 결과

 

3. 여러 시트 생성

ws2 = wb.create_sheet("두번째 시트")    # wb 통합문서에 "두번째 시트" 라는 이름을 가진 sheet 추가

- 결과

 

ws3 = wb.create_sheet("세번째 시트", 0) # wb 통합문서에 "세번째 시트" 라는 이름을 가진 sheet 추가, 제일 처음 위치로 이동

- 결과

 

ws4 = wb.create_sheet("네번째 시트", -1) # wb 통합문서에 "네번째 시트" 라는 이름을 가진 sheet 추가, 마지막 순서에서 -1 위치

- 결과

 

##전체 코드

from openpyxl import Workbook   #openpyxl 모듈의 Workbook 함수 사용 가능하도록 하는 구문

wb = Workbook() #Workbook 생성, 통합문서 생성이라고 생각하면 됨 -> wb 변수에 할당
ws = wb.active  #Workbook 생성 시 최소 한개의 시트가 만들어짐, 활성화된 sheet 가져옴 -> wb 변수의 활성화된 sheet를 ws 에 할당

ws.title = '첫번째 시트' # 활성화된 sheet 인 ws 의 이름을 변경, 결과적으로 sheet 이름이 변경됨

ws2 = wb.create_sheet("두번째 시트")    # wb 통합문서에 "두번째 시트" 라는 이름을 가진 sheet 추가

ws3 = wb.create_sheet("세번째 시트", 0) # wb 통합문서에 "세번째 시트" 라는 이름을 가진 sheet 추가, 제일 처음 위치로 이동

ws4 = wb.create_sheet("네번째 시트", -1) # wb 통합문서에 "네번째 시트" 라는 이름을 가진 sheet 추가, 마지막 순서에서 -1 위치

wb.save("create_excel_test.xlsx")   # wb 통합문서를 저장하는 명령어, 파일이름 지정 가능

 

##중간에 "Permission denied" 관련 명령 발생 시 엑셀 파일 열려 있는지 확인, 닫고 파이썬 실행 시킬 것

 

4. 시트 탭 컬러 변경

ws.sheet_properties.tabColor = "00FFFF"     # 시트 탭 색깔 변경, 원하는 색상의 RGB 코드 값 넣어줘야 함
ws2.sheet_properties.tabColor = "FF7F50"    # 시트 탭 색깔 변경, 원하는 색상의 RGB 코드 값 넣어줘야 함 
ws4.sheet_properties.tabColor = "006400"    # 시트 탭 색깔 변경, 원하는 색상의 RGB 코드 값 넣어줘야 함

- 결과

 

5. 시트 변수 추가

ws5 = wb["네번째 시트"]

ws5.title = "네번째 시트였는데.."
ws5.sheet_properties.tabColor = "FF7F50"    # 두번째 시트랑 탭 색깔 같아질거임

- 결과

# ws4 로 다시 수정할 수 있음

ws5 = wb["네번째 시트"]

ws5.title = "네번째 시트였는데.."
ws5.sheet_properties.tabColor = "FF7F50"    # 두번째 시트랑 탭 색깔 같아질거임

ws4.sheet_properties.tabColor = "006400"	# ws4, ws5 둘다 수정 가능

- 결과

 

6. 생성된 시트 확인

for sheet in wb:
    print(sheet.title)

- 결과

세번째 시트
첫번째 시트
네번째 시트였는데..
두번째 시트

 

7. 시트 복사

src = wb.active     # 현재 활성화된 sheet를 src에 할당, 제일 처음에 있는 sheet 니까 "세번째 시트"
target = wb.copy_worksheet(src) # 활성화된 sheet 를 복사

- 결과

 

#참고 : https://openpyxl.readthedocs.io/

728x90
반응형

'프로그래밍 > Python' 카테고리의 다른 글

Python_openpyxl_엑셀_03_데이터 응용  (0) 2021.02.01
Python_openpyxl_엑셀_02_셀 관련  (0) 2021.01.30
Python_05_for문  (0) 2021.01.25
Python_04_if문  (0) 2021.01.25
Python_03_리스트  (0) 2021.01.24

댓글