▶ Cell(셀)에 값 읽고 쓰기
▶ Cell에 값 쓰기
Worksheet 내 원하는 위치의 셀에 값을 쓰는 방법은 여러가지가 있다.
- Worksheet 객체에 대하여 키로써 셀 위치를 지정한 후 값을 대입하는 방법
- Worksheet 객체에 대하여 키로써 셀 위치를 지정한 후 Cell 프라퍼티 value를 사용하는 방법
- Worksheet 객체에 대하여 키로써 셀 객체를 얻은 후 Cell 프라퍼티 value를 사용하는 방법
- Worhseet 클래스의 cell 메서드를 사용하는 방법
위에서 설명한 원하는 위치의 셀에 값을 쓰는 방법에 대한 코드 예는 아래와 같다.
# python 3.9.5
# openpyxl 3.0.7
from openpyxl import Workbook
workbook = Workbook()
worksheet = workbook.active
# [1]
worksheet['A1'] = 'Hello 1'
# [2]
worksheet['B2'].value = 'Hello 2'
# [3]
c1 = worksheet['C3']
print(type(c1))
c1.value = 'Hello 3'
# [4]
worksheet.cell(4, 4, 'Hello 4')
# [5]
c2 = worksheet.cell(row=5, column=5, value='Hello 5')
print(type(c2))
# [6]
worksheet.cell(row=6, column=6).value = 'Hello 6'
workbook.save('sample.xlsx')
# workbook.close()
코드 내 # [3]과 # [4] 부분에서, c1과 c2는 반환되는 클래스 Cell의 객체를 저장한다.
위의 코드를 실행한 결과에서 알 수 있듯이
각 셀은 'A1', 'A2' 형식으로 접근하거나 row=x, column=y 형식으로 접근할 수 있다.
▶ Cell의 값 읽기
원하는 위치의 셀의 값을 읽는 방법은 셀에 값을 쓰는 방법과 크게 다르지 않다.
엑셀 파일 'sample.xlsx'이 아래와 같다면,
아래의 코드는 load_workbook 함수로 엑셀 파일 'sample.xlsx'를 불러와 셀 A1, B2, B1의 값을 화면에 출력하는 코드이다.
# python 3.9.5
# openpyxl 3.0.7
from openpyxl import load_workbook
workbook = load_workbook('sample.xlsx')
worksheet = workbook.active
# [1]
print(type(worksheet['A1'].value), worksheet['A1'].value)
# [2]
print(type(worksheet.cell(2, 2).value), worksheet.cell(2, 2).value)
# [3]
print(type(worksheet['A2'].value), worksheet['A2'].value)
# workbook.close()
다음의 실행 결과에서 알 수 있듯이 아무런 값이 없는 셀 B1에 대해서는 None 값이 반환된다.
아래의 코드처럼 셀 B1에 빈 문자열을 쓰면, 이 역시 셀 B1의 값으로 None이 반환된다.
worksheet['B2'].value = ''