본문 바로가기

코딩/파이썬과 엑셀

[Python] openpyxl로 엑셀 파일 다루기 008. Cell(셀)에 값 읽고 쓰기

▶ Cell(셀)에 값 읽고 쓰기

pytho : openpyxl : 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의 객체를 저장한다.

 

반환값은 클래스 Cell의 객체

 

위의 코드를 실행한 결과에서 알 수 있듯이

각 셀은 'A1', 'A2' 형식으로 접근하거나 row=x, column=y 형식으로 접근할 수 있다.

 

셀 값 쓰기 결과

▶ Cell의 값 읽기

원하는 위치의 셀의 값을 읽는 방법은 셀에 값을 쓰는 방법과 크게 다르지 않다.

 

엑셀 파일 'sample.xlsx'이 아래와 같다면,

 

불러올 엑셀 파일 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 = ''