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