▶ 셀 범위 지정으로 셀 값 읽고 쓰기 3 - 행 기준 모든 셀 얻기
셀의 범위를 지정할 때 행을 기준으로 모든 셀을 얻을 수 있다.
행을 기준으로 셀의 범위를 지정하고자 한다면 다음의 코드에서 처럼 알파벳을 제외한 원하는 행에 해당하는 숫자를 사용하면 된다. 참고로 엑셀에서 행은 숫자 1부터 시작한다.
cells_row = worksheet['2:3']
열과는 다르게 행에 대해선 문자열이 아닌 정수의 값도 사용이 가능하다.
cells_row = worksheet[2:3]
위의 코드에서 cells_row 변수의 데이터 타입은 tuple로 cells_row 튜플 내에 어떠한 셀이 저장되어 있는지 확인하기 위해 다음의 코드를 실행해 본다.
# python 3.9.5
# openpyxl 3.0.7
from openpyxl import load_workbook
workbook = load_workbook('sample.xlsx')
worksheet = workbook.active
cells_row = worksheet['2:3']
print(type(cells_row))
print()
for cell in cells_row:
print(cell)
cells_row = worksheet[2:3]
print()
print(type(cells_row))
print()
for cell in cells_row:
print(cell)
엑셀 파일 sample.xlsx의 시트 내용이 아래와 같을 때,
위의 코드를 실행한 결과 cells_row 변수에는 A2 ~ F2까지의 셀 객체가 저장되어 있고, worksheet['2:3']과 worksheet[2:3]은 동일한 셀 범위를 반환한다.
행 또한 열에서와 같이 슬라이싱을 통한 둘 이상의 행뿐만 아니라 하나의 행도 지정하는 것이 가능하다.
# python 3.9.5
# openpyxl 3.0.7
from openpyxl import load_workbook
workbook = load_workbook('sample.xlsx')
worksheet = workbook.active
cells_row = worksheet['2']
print(type(cells_row))
print()
for cell in cells_row:
print(cell)
cells_row = worksheet[2]
print()
print(type(cells_row))
print()
for cell in cells_row:
print(cell)
아래의 그림에서 처럼 코드 상에서 셀 G2에 'Hello 11' 값을 입력하면,
# python 3.9.5
# openpyxl 3.0.7
from openpyxl import load_workbook
workbook = load_workbook('sample.xlsx')
worksheet = workbook.active
print(worksheet.max_column)
print()
cells_row = worksheet['2']
for cell in cells_row:
print(cell)
worksheet.cell(2, 7, 'Hello 11') # 새로운 셀의 값 입력
print()
print(worksheet.max_column)
print()
cells_row = worksheet['2']
for cell in cells_row:
print(cell)
workbook.save('sample.xlsx')
worksheet['2']가 반환하는 셀의 범위도 변경되며, worksheet의 속성 max_column의 값도 6에서 7로 변경됨을 볼 수 있다.
'코딩 > 파이썬과 엑셀' 카테고리의 다른 글
openpyxl로 엑셀 다루기 013. Worksheet.iter_cols 메서드 (0) | 2021.07.09 |
---|---|
[Python] openpyxl로 엑셀 파일 다루기 012. 셀 범위 지정으로 셀 값 읽고 쓰기 4 - Worksheet.iter_rows 메서드 (0) | 2021.06.23 |
[Python] openpyxl로 엑셀 파일 다루기 010. 셀 범위 지정으로 셀 값 읽고 쓰기 2 - 열 기준 모든 셀 얻기 (0) | 2021.06.17 |
[Python] openpyxl로 엑셀 파일 다루기 009. 셀 범위 지정으로 셀 값 읽고 쓰기 (range of cells) (0) | 2021.06.16 |
[Python] openpyxl로 엑셀 파일 다루기 008. Cell(셀)에 값 읽고 쓰기 (0) | 2021.06.10 |