본문 바로가기

Python/Tip

파이썬-엑셀시트 csv파일로 나누기

반응형

안녕하세요. 오랜만에 파이썬 포스팅을 가지고 왔습니다!

 

해당 프로그램은 아래 그림 같이 엑셀 파일의 각각의 시트를 csv파일로 나누어 저장하는 소스코드입니다.

 

회사 업무 중에 시트로 나뉜 데이터를 csv로 사용하기 위해 만들었습니다.

 

매우 간략한 코드이기 때문에 주석만 보셔도 충분히 이해 가능할 것 같네요.

 

import xlrd
import csv

# 해당 경로를 입력해줍니다.
strPath = "C:/Temp/"
# 엑셀파일명을 입력해줍니다.
strPathName = "엑셀파일.xlsx"

#엑셀의 열어 workbook을 얻어옵니다.
wb = xlrd.open_workbook(strPath + strPathName)
#workbook의 전체 시트 목록을 얻어옵니다.
lst = wb._sheet_list
for SheetT in lst :
    print(SheetT.name)    
    FileName = SheetT.name.replace(" ", "")
    #엑셀의 시트명에 따라 파일을 각각 생성하여 저장해줍니다
    SaveCsvFile = open(strPath + str(FileName) + '.csv', 'w', newline='')
    wr = csv.writer(SaveCsvFile, quoting=csv.QUOTE_ALL)
	
    #해당 시트의 데이터를 csv에 입력해줍니다
    for rownum in range(SheetT.nrows):
        listvalue = SheetT.row_values(rownum)
        if rownum == 0 or rownum == 1 :
            wr.writerow(SheetT.row_values(rownum))
        else :
            listvalue[0] = ""
            if str(listvalue[1]).find(".0") >= 0:
                listvalue[1] = str(int(float(listvalue[1])))
            if str(listvalue[2]).find(".0") >= 0:
                listvalue[2] = str(int(float(listvalue[2])))
            wr.writerow(listvalue)
        
        
    SaveCsvFile.close()

 

 

현재 사용한 엑셀 입출력 라이브러리는 엑셀을 읽기만 해도 되기때문에 xlrd를 사용하였습니다. 추후에는 엑셀 라이브러리에 대한 포스팅도 하겠습니다. 2019년 새해 복 많이 받으세요!

반응형

'Python > Tip' 카테고리의 다른 글

파이썬 대용량 csv 나누기  (0) 2018.01.04
window python console(콘솔) 숨기기  (0) 2017.11.29
python27_d.lib 오류  (0) 2016.12.16
[numpy]파이썬 numpy array index 찾기(numpy.where)  (0) 2016.11.22
파이썬 포맷팅  (0) 2016.11.16