본문 바로가기

코딩/파이썬과 엑셀

openpyxl로 엑셀 다루기 013. Worksheet.iter_cols 메서드

python : openpyxl : worksheet.iter_cols

Worksheet.inter_cols 메서드

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

 

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

 

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

 

새로운 엑셀 파일을 생성한 후 열 2~4, 행 2~4에 해당하는 셀에 1부터 시작하는 정수를 차례대로 입력하는 코드를 작성하면,

 

# openpyxl 3.0.7

from openpyxl import Workbook

workbook = Workbook()
worksheet = workbook.active

count = 1

for cols in worksheet.iter_cols(min_col=2, max_col=4, min_row=2, max_row=4):
    for cell in cols:
        cell.value = count
        count += 1

workbook.save('sample_iter_cols.xlsx')

 

아래와 같이 그 결과는 열(세로)을 기준으로 정수의 값이 입력되어 있음을 확인할 수 있다.

 

열을 기준으로 생성된 엑셀 파일

 

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

위의 코드에서 열을 2~4로 지정했기 때문에 아래와 같이 3개의 튜플이 반환된다.

반환된 튜플은 열을 기준으로 셀 객체가 저장되어 있다.

 

inter_cols 메서드의 반환 값

 

iter_cols 메서드로 열과 행을 지정할 때, 하나의 셀 지정도 가능하다.

 

# openpyxl 3.0.7

from openpyxl import Workbook

workbook = Workbook()
worksheet = workbook.active

count = 1

for cols in worksheet.iter_cols(min_col=2, max_col=2, min_row=2, max_row=2):
    print(cols)
    for cell in cols:
        cell.value = count
        count += 1

workbook.save('sample_iter_cols.xlsx')

 

iter_cols 메서드에서 하나 의 셀 지정하기

 

Note :

 

For performance reasons the Worksheet.iter_cols() method is not available in read-only mode.