본문 바로가기

코딩/파이썬과 엑셀

[Python] openpyxl로 엑셀 파일 처리 003. 시트 복사(worksheet copy)

▶ 시트 복사 (worksheet copy)

python : openpyxl : 시트 복사

 

Workbook의 메서드인 copy_worksheet를 이용하면 임의 시트에 대한 복사본을 만들 수 있다.

Workbook은 openpyxl.workbook.workbook 모듈 내에 정의되어 있는 클래스이다.

 

class openpyxl.workbook.workbook.Workbook(write_only=False, iso_dates=False)

Workbook.copy_worksheet( )

메서드 copy_worksheet는 Worksheet 객체를 입력받는다.

그리고 복사된 Worksheet 객체를 반환한다.

 

아래의 코드를 실행한 후 엑셀 파일 'sample.xlsx'를 열어 보면,

 

# python 3.9.5
# openpyxl 3.0.7

from openpyxl import Workbook

workbook = Workbook()
worksheet = workbook.active
worksheet['A1'] = 'Hello openpyxl'

ret_object = workbook.copy_worksheet(worksheet)
print(type(ret_object))

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

 

아래와 같이 시트 'Sheet'의 복사본 'Sheet Copy'가 만들어져 있는 것을 볼 수 있다.

 

시트 복사 결과

 

위 코드에서 메서드 copy_worksheet의 반환값은 Worksheet 객체이다.

 

copy_worksheet의 반환값

 

메서드 copy_worksheet의 반환값인 Worksheet 객체가 기존 시트에 대한 객체인지, 아니면 복사를 통해 새로 만들어진 객체인지를 확인하기 위해 시트 명을 아래와 같이 변경한 후 코드를 실행해 본다.

 

# python 3.9.5
# openpyxl 3.0.7

from openpyxl import Workbook

workbook = Workbook()
worksheet = workbook.active
worksheet['A1'] = 'Hello openpyxl'

ret_object = workbook.copy_worksheet(worksheet)
ret_object.title = 'Return Worksheet'

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

 

예상했지만 메서드 copy_worksheet는 복사되어 새로 만들어진 시트의 객체를 반환한다.

 

메서드 copy_worksheet의 반환하는 객체

참고

2021.05.27 - [학습 노트/Python - 별도 라이브러리] - [Python] openpyxl로 엑셀 파일 처리 002. 시트(sheet) 이름 확인 및 새로 추가