반응형

파이썬에는 엑셀을 읽어고 작성할 수 있는 라이브러리가 있습니다. 이 라이브러리를 자유자재로 다룰 수 있다면 많은 일들을 자동화할 수 있고 일을 크게 줄일 수 있습니다(하지만 사장님께 걸리면 오히려 일이 늘어날 수 있습니다).

 

 

xlrd가 뭐야?

 

xlrd란 Excel(xls)의 데이터를 Python으로 읽어 들이기 위한 라이브러리입니다. xlrd은 'excel read'의 축약형이라고 알려져 있습니다. 

 

xlrd에서는 Book ⇒Sheet ⇒ Cell이라는 구조로 엑셀 데이터를 추출합니다. 

 

 

xlwt가 뭐야?

xlwt는 xls 파일을 작성하는 기능을 갖춘 라이브러리입니다. 

 

 

 

xlrd, xlwt 설치 방법

 

xlrd 설치

 

당연하겠지만 기본적으로 PC 등에 파이썬이 설치되어 있어야 합니다. 그리고 아래와 같이 pip로  xlrd 라이브러리를 인스톨합니다. 

 

윈도

pip install xlrd

sudo pip install xlrd

리눅스

sudo pip install xlrd

 

xlwt 설치

 

당연하겠지만 기본적으로 PC 등에 파이썬이 설치되어 있어야 합니다. 그리고 아래와 같이 pip로  xlrd 라이브러리를 인스톨합니다. 

 

윈도우

pip install xlwt

sudo pip install xlwt

리눅스

sudo pip install xlwt

 

 

 

 

xlrd 사용 방법 (xls, xlsx 파일 읽어오기)

 

예를 들어서 아래와 같은 내용의 시트(Sheet1)를 가지고 있는 엑셀 파일이 있다고 하겠습니다.

 

예제.xlsx 

  A B C
1 11 12 13
2 21 22 23
3 31 32 33

 

예를 들면 아래와 같은 방식으로 사용할 수 있습니다. 

 

우선 xlrd 라이브러리를 읽어옵니다. 

import xlrd

 

다음으로 엑셀 북을 엽니다. 

book = xlrd.open_workbook('예제.xlsx')

여기에서는 파이썬 파일이 있는 폴더에 예제.xlsx 파일이 있는 경우입니다. 만약 특정 위치를 지정하고 싶다면 아래와 같은 방식으로 위치를 입력해주세요. 

 

'data/예제.xls'

 

다음으로 Sheet1이라는 이름의 시트 열겠습니다. 

s = book.sheet_by_name('Sheet1')


이제는 지정한 셀의 객체를 받아오겠습니다. 
 cell 메서드의 괄호 안에 (행, 열) 순서로 지정해 줍니다

print s.cell(1, 3)

 

출력 결과 : 13

 

 

 

xlrd 사용 방법 (xls, xlsx 파일 읽어오기)

 

여기서는 엑셀의 워크북을 만들고 워크시트를 추가해보겠습니다. 

 

xlwt 라이브러리를 읽어옵니다. 

import xlwt

 

워크북을 생성합니다. 

wb = xlwt.Workbook()

 

 

워크북에 시트를 추가합니다. 

sheet = wb.add_sheet('sheet1')

 

이제 셀에 값을 입력해보겠습니다. 

write() 메서드 사용

#괄호 안에 (행, 열, '입력값') 순으로 인자를 전달해줍니다.
sheet.write(0, 0, 'A')
sheet.write(0, 1, 'B')
sheet.write(1, 0, 10)
sheet.write(1, 1, 20)

 

※ 주의할 점은 이미 입력된 값이 있는 경우 에러가 발생한다는 점입니다. 

# sheet.write(0, 0, 'A')
# Exception: Attempt to overwrite cell: sheetname='sheet1' rowx=0 colx=0

 

내용 저장하기

save() 메서드 사용

wb.save('예제.xls')

아래의 예제는 파이썬 파일이 있는 폴더에 저장하도록 되어 있습니다. 만약 다른 폴더에 저장하고 싶다면 아래와 같은 방식으로 위치를 정확히 지정해주세요.

 

'data/예제.xls'

 

 

참조 문서

xlrd — xlrd 2.0.1 documentation

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기