※ OpenPyxl 관련 포스팅 모음
2021.03.19 - [코딩/업무자동화] - [파이썬/업무자동화] Openpyxl로 엑셀 함수 사용하기, 엑셀 수식 넣기
2021.08.21 - [코딩/업무자동화] - [파이썬/업무자동화] Openpyxl 통해 엑셀 함수 사용하기 2편
2021.08.30 - [코딩/업무자동화] - [파이썬/업무자동화] 엑셀에 입력 된 파일명 따라 이미지 삽입하기 - openpyxl
2021.10.04 - [코딩/업무자동화] - [파이썬/업무자동화] openpyxl.style 사용법 정리
2021.10.16 - [코딩/업무자동화] - [파이썬/업무자동화] openypyxl 통해 엑셀 조건부 서식 적용하기
1. 시트 생성하기
: create sheet 사용시 파라미터에 따라 시트 위치도 조정 가능함
기본적으로 시트를 생성하는 방법은 create_sheet 함수를 사용. 괄호 안의 내용은 시트명.
<코드>
#workbook 객체 생성
wb = op.Workbook()
#시트 생성하기(create sheet)
ws = wb.create_sheet("연습")
print(wb.sheetnames)
<결과>
['Sheet', '연습']
만약, 시트의 위치를 지정하고 싶다면 아래와 같이 숫자 파라미터 입력한다. 숫자 0을 기준으로 시트 생성
<코드>
#첫번째 위치에 생성
ws = wb.create_sheet("첫번째", 0)
print("첫번째 : ", wb.sheetnames)
#마지막에서 두번재 위치에 생성
ws = wb.create_sheet("뒤에서 두번째",-1)
print("뒤에서 두번째 : ", wb.sheetnames)
#두번째 위치에 생성
ws = wb.create_sheet("두번째",1)
print("두번째 : ", wb.sheetnames)
#세번째 위치에 생성
ws = wb.create_sheet('세번째',2)
print("세번째 : ", wb.sheetnames)
<결과>
첫번째 : ['첫번째', 'Sheet', '연습']
뒤에서 두번째 : ['첫번째', 'Sheet', '뒤에서 두번째', '연습']
두번째 : ['첫번째', '두번째', 'Sheet', '뒤에서 두번째', '연습']
세번째 : ['첫번째', '두번째', '세번째', 'Sheet', '뒤에서 두번째', '연습']
2. 시트 이름 변경하기
1에서 다뤘던 시트명을 기준으로 변경. 시트명을 변경할 때는 title이라는 속성값을 사용
<코드>
#'첫번째'라는 이름을 가진 시트를 'First'로 변경
ws1 = wb["첫번째"]
ws1.title = "First"
print(wb.sheetnames)
#'두번째'라는 이름을 가진 시트를 'Second'로 변경
ws2 = wb["두번째"]
ws2.title = "Second"
print(wb.sheetnames)
<결과>
['First', '두번째', '세번째', 'Sheet', '뒤에서 두번째', '연습']
['First', 'Second', '세번째', 'Sheet', '뒤에서 두번째', '연습']
3. 워크시트 이동, 복사
워크시트 이동과 복사는 move_sheet와 copy_worksheet라는 함수를 사용한다. 해당 함수를 사용해보니 다른 엑셀파일간의 이동,복사는 안되는 것으로 보인다.
1) 복사
<코드>
#'Second' 시트를 복사하기
sht = wb["Second"]
ws_copy = wb.copy_worksheet(sht)
print("복사한 시트명 : ", ws_copy)
print("시트리스트 : ", wb.sheetnames)
<결과>
복사한 시트명 : <Worksheet "Second Copy">
시트리스트 : ['First', 'Second', '세번째', 'Sheet', '뒤에서 두번째', '연습', 'Second Copy']
2) 이동
현재 있는 시트 위치 기준으로 offset 값을 줘 이동. move_sheet(ws_copy, -5)에서 -5가 offset이다. 결과를 보면 시트가 앞으로 5칸 이동함.
<코드>
#복사한 Second sheet를 기준점에서 앞으로 5칸 이동
print("원본 : ", wb.sheetnames)
wb.move_sheet(ws_copy, -5)
print("이동 후 : " , wb.sheetnames)
<결과>
원본 : ['First', 'Second', '세번째', 'Sheet', '뒤에서 두번째', '연습', 'Second Copy']
이동 후 : ['First', 'Second Copy', 'Second', '세번째', 'Sheet', '뒤에서 두번째', '연습']
4. 시트 속성 설정(시트 탭 색깔)
시트 탭의 색을 변경 가능
<코드>
#변경전 시트 확인
wb.save("./Project/15. openpyxl 시트 조작 관련/before.xlsx")
#시트 탭 색깔 변경(하늘색)
ws_copy.sheet_properties.tabColor = '00FFFF'
#다시 저장하여 확인
wb.save("./Project/15. openpyxl 시트 조작 관련/after.xlsx")
<결과>
'코딩 > 업무자동화' 카테고리의 다른 글
[파이썬/업무자동화] win32com.client 사용해서 엑셀 사용하기 기초 (0) | 2021.11.23 |
---|---|
[파이썬/업무자동화] openpyxl - Cell의 데이터를 지우는 3가지 방법 (0) | 2021.11.17 |
[파이썬/업무자동화] openypyxl 통해 엑셀 조건부 서식 적용하기 (0) | 2021.10.16 |
[파이썬/업무자동화] openpyxl.style 사용법 정리 (1) | 2021.10.04 |
[파이썬/업무자동화] 여러 파일에 이미지 삽입하기 + 이미지 크기 변경(Pillow) (0) | 2021.09.25 |