파이썬에서 OpenPyXL을 사용해 엑셀의 셀 값을 취득하는 방법을 알아봤었습니다.
이번에는 엑셀의 여러 개의 셀 값을 취득하는 방법에 대해서 알아보겠습니다.
지난 내용인 하나의 셀에서 값을 취득하는 방법에 대해서는 아래 내용을 참조해주세요.
여러개 셀에서 값 취득하기
셀에서 값을 취득하는 방법 하기 위해서 행 번호와 열 번호를 지정해 해당 셀에 접근하여 값을 취득할 수 있습니다.
엑셀시트오브젝트.cell(row=행 번호, column=열 번호)
여러 개의 셀에서 값을 취득하기 위해서 반복문인 for문을 사용하겠습니다.
샘플로 엑셀 B열에 있는 값을 취득하는 방법을 알아보겠습니다.
샘플 소스
import openpyxl
wb =openpyxl.load_workbook('test.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
for i in range(1,8):
print(sheet.cell(row=i, column=2).value)
결과
Apples
Cherries
Pears
Oranges
Apples
Bananas
Strawberries
B열에 있는 값을 모두 취득했습니다.
위 샘플에서는 엑셀의 7번째 행까지 값이 들어있는 것을 알고 있었기 때문에 for i in range(1,8): 라고 위치를 지정할 수 있었습니다.
하지만, 엑셀에 8번째, 9번째 행에 값을 입력해 내용을 변경하게 되면 추가로 작성한 내용은 취득해 올 수 없습니다.
이번에는 엑셀 파일에 내용이 추가돼도 추가된 값을 취득해 올 수 있는 샘플 소스를 보겠습니다.
샘플 소스
import openpyxl
wb =openpyxl.load_workbook('test.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
for cell_obj in list(sheet.columns)[1]:
print(cell_obj.value)
결과
Apples
Cherries
Pears
Oranges
Apples
Bananas
Strawberries
B열에 있는 모든 값을 취득했습니다.
for문을 살펴보겠습니다.
for cell_obj in list(sheet.columns)[1]:
list 함수를 사용하면 지정한 열에 값이 존재하는 모든 셀에서 값을 취득해 올 수 있습니다.
엑셀 파일의 열 기준이 아닌 행 기준으로 모든 값을 취득하고 싶은 경우에는 columns대신 rows를 사용하면 됩니다.
행 기준 모든 값 가져오기
import openpyxl
wb =openpyxl.load_workbook('test.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
for cell_obj in list(sheet.rows)[1]:
print(cell_obj.value)
데이터가 많이 들어있는 엑셀 파일에서 행 단위나, 열 단위로 모든 값을 취득해오거나
일정 범위의 여러개 셀의 값을 취득해올 때 유용하게 사용할 수 있습니다.
댓글