keilab

파이썬으로 엑셀 다루기(xlwt 사용법) 본문

Python

파이썬으로 엑셀 다루기(xlwt 사용법)

datapy 2018. 8. 9. 18:10
xlwt

00. 개요

이번 포스팅에서는 xlwt 라이브러리 사용방법을 알아보겠습니다. xlwt는 엑셀 파일을 생성 하고 내용을 작성할 수 있게 해주는 라이브러리 입니다.

01. 설치

pip install xlwt

02. Data Table

한국프로야구 순위 데이터를 예제로 활용해 보겠습니다. (2018년 8월 5일 기준)
이 데이터를 엑셀에 붙여 넣어 kbo_rank.xlsx 이름으로 저장합니다.


[kbo_rank.xlsx]

순위 팀명 경기 승률 게임차 최근10경기 연속 방문
1 두산 104 68 36 0 0.654 0 5승0무5패 2패 36-0-13 32-0-23
2 SK 103 59 43 1 0.578 8 6승0무4패 2승 31-0-18 28-1-25
3 한화 106 59 47 0 0.557 10 4승0무6패 2패 32-0-21 27-0-26
4 LG 107 53 53 1 0.500 16 2승0무8패 5패 31-1-22 22-0-31
5 넥센 109 53 56 0 0.486 17.5 5승0무5패 3승 24-0-32 29-0-24
6 삼성 107 50 54 3 0.481 18 6승1무3패 1승 24-2-25 26-1-29
7 KIA 102 48 54 0 0.471 19 5승0무5패 2승 31-0-23 17-0-31
8 롯데 103 45 56 2 0.446 21.5 6승0무4패 1패 24-0-29 21-2-27
9 KT 104 43 59 2 0.422 24 4승0무6패 4패 22-2-28 21-0-31
10 NC 107 43 63 1 0.406 26 6승1무3패 2승 23-0-32 20-1-31

03.엑셀 파일 다루기

xlwt라이브러리를 사용하여 엑셀 파일을 작성하는 방법은 아래와 같습니다.

  • sheet 생성
  • cell에 내용 작성
  • 파일 저장

sheet 생성

#-*- coding:utf-8 -*-
import xlwt

wb=xlwt.Workbook(encoding='utf-8')
ws=wb.add_sheet('sheet1')

내용 작성

ws.write(0,0,"순위")
ws.write(0,1,"이름")
ws.write(1,0,"1")
ws.write(1,1,"Ronaldo")
ws.write(2,0,"2")
ws.write(2,1,"Rashford")
ws.write(3,0,"3")
ws.write(3,1,"Isco")

파일 저장

wb.save('player.xls')

Note : xlsx 확장자는 지원하지 않음

실행결과

[player.xls]


04. Example

위에서 학습한 내용을 토대로 간단한 코드를 만들어보겠습니다. 목표는 kbo_rank.xlsx 파일에서 읽어들여 숫자(순위)를 입력받고, 해당 순위에 대한 row 값들을 team_score.xls 파일에 저장하는 것입니다.

#-*- coding:utf-8 -*-
import xlwt
import xlrd

# read file
r_wb=xlrd.open_workbook("kbo_rank.xlsx")
r_ws=r_wb.sheet_by_index(0)

ncol=r_ws.ncols
nrow=r_ws.nrows

# write file
wb=xlwt.Workbook(encoding='utf-8')
ws=wb.add_sheet('sheet1')

def load_score(rank):
    for i in range(nrow):
    	ws.write(0,i, r_ws.row_values(rank)[i])

rank=raw_input("순위를 입력하세요 :  ")

load_score(int(rank))
wb.save('team_score.xls')

실행결과

>>>순위를 입력 하세요 : 3

[team_score.xls]