본문 바로가기

코딩/파이썬과 엑셀

[Python] openpyxl로 엑셀 파일 처리 002. 시트(sheet) 이름 확인 및 새로 추가

Worksheet 객체의 title 속성으로 시트 이름 확인 및 변경

Worksheet 객체의 title 속성을 사용하면 시트 이름의 읽기, 쓰기 모두 가능하다.

 

from openpyxl import Workbook

workbook = Workbook()

ws = workbook.active

print(ws.title)

ws.title = ws.title.upper()
print(ws.title)

workbook.save('sample.xlsx')
workbook.close()

 

실행 결과에서 특이한 점은 동일 이름(대소문자 구분 no)에 대한 처리에선 자동으로 숫자가 붙는다.

 

Workbook 객체의 create_sheet() 메서드로 원하는 위치에 시트 추가

from openpyxl import Workbook

workbook = Workbook()

ws = workbook.active

ws = workbook.create_sheet('New A')
print(ws.title)

ws = workbook.create_sheet('New B', -1)
print(ws.title)

ws = workbook.create_sheet('New C', 0)
print(ws.title)

ws = workbook.active
print(ws.title)

workbook.save('sample.xlsx')
workbook.close()

 

실행 결과를 보면 새롭게 추가된 시트가 시트 작업을 위한 활성화 상태에 있는 것을 볼 수 있다.

 

Workbook 객체의 sheetnames 속성으로 생성되어 있는 시트 이름 모두를 확인

Workbook.sheetnames의 반환 값은 리스트(list)이다.

for 문에선 Workbook 객체 자체가 Worksheet들의 리스트로 처리된다.

Workbook 객체를 마치 딕셔너리처럼 사용하여 작업 대상 시트를 변경할 수 있다.

create_sheet 메서드의 두번째 인자에 0 값을 전달함으로써 시트 'New C'가 첫번째에 위치하게 된다.

 

from openpyxl import Workbook

workbook = Workbook()

ws = workbook.active

ws = workbook.create_sheet('New A')
print(ws.title)

ws = workbook.create_sheet('New B', -1)
print(ws.title)

ws = workbook.create_sheet('New C', 0)
print(ws.title)

ws = workbook.active
print(ws.title)

print(workbook.sheetnames)
for ws in workbook:
    print(ws.title)

ws = workbook['New A']
print(ws.title)

workbook.save('sample.xlsx')
workbook.close()