본문 바로가기

코딩/파이썬과 엑셀

[Python] openpyxl로 엑셀 파일 다루기 012. 셀 범위 지정으로 셀 값 읽고 쓰기 4 - Worksheet.iter_rows 메서드

python : openpyxl : worksheet.iter_rows()

▶ 셀 범위 지정으로 셀 값 읽고 쓰기 4 - Worksheet.iter_rows 메서드

셀의 범위를 지정할 때 행과 열 번호를 기준으로 해당되는 모든 셀을 얻을 수 있다.

 

행과 열 번호를 기준으로 셀의 범위를 지정하고자 한다면 Worksheet 클래스의 iter_rows 메서드를 사용하면 된다.

엑셀에서 열과 행은 숫자 1부터 시작한다.

 

iter_rows(min_row=None, max_row=None, min_col=None, max_col=None, values_only=False)

 

새로운 엑셀 파일을 생성한 후 행 2 ~ 4, 열 2 ~ 4에 해당하는 셀, 즉 셀 B2 ~ D4에 정수를 차례대로 입력하는 코드를 작성한 후 실행해 보면,

 

# python 3.9.5
# openpyxl 3.0.7

from openpyxl import Workbook

workbook = Workbook()
worksheet = workbook.active

count = 1

for rows in worksheet.iter_rows(min_row=2, max_row=4, min_col=2, max_col=4):
    print(type(rows))
    for cell in rows:
        cell.value = count
        count += 1

workbook.save('sample_iter_rows.xlsx')

 

아래의 결과와 같이 행(가로)을 기준으로 정수의 값이 입력됨을 알 수 있다.

 

새로 생성된 엑셀 파일

 

Worksheet 클래스의 iter_rows 메서드는 행의 개수 만큼 튜플을 반환한다.

위의 코드에서 행은 2 ~ 4로 지정했기 때문에 아래의 그림과 같이 3개의 튜플이 반환되었으며,

 

iter_rows 메서드의 반환값의 데이터 타입

 

반환된 튜플에는 행(가로)을 기준으로 열 2 ~ 4에 해당되는 셀 객체가 저장되어 있다.

 

튜플 내 저장되어 있는 값

 

Worksheet 클래스의 iter_rows 메서드를 사용할 때 하나의 셀 지정도 가능하다.

 

# python 3.9.5
# openpyxl 3.0.7

from openpyxl import Workbook

workbook = Workbook()
worksheet = workbook.active

count = 1

for rows in worksheet.iter_rows(1, 1, 1, 1):
    print(type(rows))
    print(rows)

 

하나의 셀을 지정하면, 하나의 튜플이 반환된다.

 

하나의 셀 지정