SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
2016-04-26(Tue)
Seunghoon Lee – PKM lab
+
Contents!
Python Excel module
Install module(via pip)
Excel with Python
Example code #1(xlrd)
Example code #2(xlwt)
Example code #3(openpyxl)
Reference
Python Excel module
Excel VBA처럼 Python에서도 Excel file을 읽고 쓸 수 있는 module들이 있음
여기서는 다음 두 가지만 설명
1) Xlrd(excel read) & xlwt(excel write): 활용하기 제일 쉬움
• 어차피 복잡한 수식 등은 python에서 직접 코딩하거나 엑셀에서 직접 처리하는게 편함
• 다만 xlwt에서는 xlsx 파일 지원하지 않음(xls만 지원), 따라서 최대 처리 행 수 65536으로 제한
2) OpenPyXl
• Documentation도 잘되어 있으며, python에서 가장 많이 쓰이는 module
3) Xlswriter(write only)
• Documentation이 잘 되어 있어서 활용하기 편함
4) PyExceleratre
https://libsora.so/posts/python-excel-library/
Install Package(via pip)
앞서 설명한 라이브러리를 활용하기 위해서는 module들을 하나하나 직접 설치해야 함
제어판 ==> 시스템 및 보안 ==> 시스템 ==> 고급 시스템 설정 ==>
고급 탭 ==> 환경 변수 ==> 시스템 변수, Path 변수에 Python이 설치된 폴더 경로를 입력
(기존 내용을 삭제하지 않고 “;”으로 구분하여 입력)
완료하면, 윈도우+r ==> cmd에서 바로 python으로 실행 가능
ex: pip install pandas
ex: pip install numpy
ex: pip install xlrd
ex: pip install xlwt
if it didn’t work
pip install –-upgrade pip
Example Code #1(xlrd. Excel Read)
import xlrd
workbook=xlrd.open_workbook("xlrd_test.xlsx")#read excel file
worksheet1 = workbook.sheet_by_index(0) #Find worksheet 0(첫번째 시트)
n_rows=worksheet1.nrows #sheet 내에 전체 row 수를 return
row_list=[] #각 row를 넣을 list 생성
for row_num in range(n_rows): #모든 row에 대해서 list에 값을 집어넣음
row_list.append(worksheet1.row_values(row_num))
#row_list에 모든 row가 element로 모두 들어감
Example Code #2(Xlwt, Write Excel)
import xlwt
workbook=xlwt.Workbook(encoding="utf-8") #utf-8 방식의 Workbook 생성
worksheet=workbook.add_sheet("kkk") # 시트이름이 “kkk”인 시트 추가
for row_index in range(0, 100):
for col_index in range(0, 100):
worksheet.write(row_index, col_index,0) #row_index, col_index에 0을 입력
#100x100 matrix를 엑셀파일 해당 시트에 입력완료
workbook.save("xlwt_test.xls") # 엑셀 파일 저장
# 앞서 말했듯이 xlwt에서는 xlsx를 지원하지 않음.
Example Code #3(Openpyxl, Write Excel)
From openpyxl import Workbook
From openpyxl.cell import get_column_letter#해당 cell의 column letter return(예: A6 ==> A)
Wb=Workbook()#wookbook 인스턴스 생성
Dest_filename=“empty_book.xlsx” #file name
Ws1=wb.active#활성화되어 있는 시트를 활용
Ws2=wb.create_sheet(title=“Pi”) #이름이 “PI”인 시트 생성
Ws1.title=“range names” #시트의 이름을 변경
For row in range(1, 40):#cell index 시작이 1
ws1.append(range(600)) #0부터 599까지의 list를 각 row에 입력
#39x600 matrix가 생성
For col_index in range(1, 20):
ws1.cell(row=40, column=col_index, value="=sum("+get_column_letter(col_index)+"1:"+get_column_letter(col_index)+"39)")
#function을 string으로 집어넣음
ws2[“F5”]=3.14#F5에 3.14를 집어넣음
Wb.save(“empty_book.xlsx”)
Example Code #4(Openpyxl, read excel)
From openpyxl import load_workbook
Wb=load_workbook(filename=“empty_book.xlsx”) # “empty_book.xlsx”를 읽음
Sheet1=wb[“range names”] #시트 설정 “range names”라는 시트를 sheet1에 저장
Print(sheet1[“D18”].value) #sheet1의 D18에 있는 값을 출력
Example Code #5(Openpyxl, read excel)
>>> import openpyxl
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> wb.get_sheet_names()#전체 시트의 이름을 list로 return
['Sheet1', 'Sheet2', 'Sheet3']
>>> sheet3 = wb.get_sheet_by_name('Sheet3') #시트 이름으로 시트 찾아서 sheet변수에 넣음
>>> sheet3
<Worksheet "Sheet3">
>>> type(sheet)
<class 'openpyxl.worksheet.worksheet.Worksheet'>
>>> sheet.title
'Sheet3'
Example Code #6(Openpyxl, read excel)
>>> import openpyxl
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> sheet = wb.get_sheet_by_name('Sheet1')
>>> sheet['A1']#sheet의 A1에 대한 Cell instance
<Cell Sheet1.A1>
>>> sheet['A1'].value#Cell instance에서 value를 return하는 value method call
datetime.datetime(2015, 4, 5, 13, 34, 2)
>>> cell1 = sheet['B1']
>>> cell1.value
'Apples'
>>> 'Row ' + str(cell1.row) + ', Column ' + cell1.column + ' is ' + cell1.value
#cell instance에서 row index를 return 하는 row method
#cell instance에서 column index를 return 하는 column method
'Row 1, Column B is Apples'
>>> 'Cell ' + cell1.coordinate + ' is ' + cell1.value#row index, column index를 모두 return coordinate method
'Cell B1 is Apples'
>>> sheet['C1'].value
73
A B C
1 2009-07-18 19:40 Apples 73
2 2009-07-21 18:32 Cherries 85
3 2009-07-20 15:17 Pears 14
4 2009-07-23 16:03 Oranges 52
5 2009-07-24 10:05 Apples 152
6 2009-07-26 21:39 Bananas 23
7 2009-07-07 19:21 Strawberries 98
Example Code #7(Openpyxl, read excel)
>>> sheet.cell(row=1, column=2)#i, j로 cell 에 접근
<Cell Sheet1.B1>
>>> sheet.cell(row=1, column=2).value
'Apples'
>>> for i in range(1, 8, 2):
print(i, sheet.cell(row=i, column=2).value)
1 Apples
3 Pears
5 Apples
7 Strawberries
>>> sheet.get_highest_row()
7
>>> sheet.get_highest_column()
3
A B C
1 2009-07-18 19:40 Apples 73
2 2009-07-21 18:32 Cherries 85
3 2009-07-20 15:17 Pears 14
4 2009-07-23 16:03 Oranges 52
5 2009-07-24 10:05 Apples 152
6 2009-07-26 21:39 Bananas 23
7 2009-07-07 19:21 Strawberries 98
기타 참고 사이트들
Python-excel
http://www.python-excel.org/
Openpyxl
https://openpyxl.readthedocs.org/en/default/index.html
Automate the boring stuff.com(Working with Excel Spreadsheets)
https://automatetheboringstuff.com/chapter12/

Weitere ähnliche Inhalte

Andere mochten auch

Python. Finance. Excel. - The Thalesians
Python. Finance. Excel. - The ThalesiansPython. Finance. Excel. - The Thalesians
Python. Finance. Excel. - The Thalesiansxlwings
 
xlwings – Make Excel Fly with Python
xlwings – Make Excel Fly with Pythonxlwings – Make Excel Fly with Python
xlwings – Make Excel Fly with Pythonodsc
 
xlwings - Connecting Python with Excel
xlwings - Connecting Python with Excelxlwings - Connecting Python with Excel
xlwings - Connecting Python with Excelxlwings
 
xlwings Presentation (Excel & Python) Swiss FinteCH event
xlwings Presentation (Excel & Python) Swiss FinteCH eventxlwings Presentation (Excel & Python) Swiss FinteCH event
xlwings Presentation (Excel & Python) Swiss FinteCH eventxlwings
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to PythonNowell Strite
 

Andere mochten auch (6)

Python. Finance. Excel. - The Thalesians
Python. Finance. Excel. - The ThalesiansPython. Finance. Excel. - The Thalesians
Python. Finance. Excel. - The Thalesians
 
Biz plan
Biz planBiz plan
Biz plan
 
xlwings – Make Excel Fly with Python
xlwings – Make Excel Fly with Pythonxlwings – Make Excel Fly with Python
xlwings – Make Excel Fly with Python
 
xlwings - Connecting Python with Excel
xlwings - Connecting Python with Excelxlwings - Connecting Python with Excel
xlwings - Connecting Python with Excel
 
xlwings Presentation (Excel & Python) Swiss FinteCH event
xlwings Presentation (Excel & Python) Swiss FinteCH eventxlwings Presentation (Excel & Python) Swiss FinteCH event
xlwings Presentation (Excel & Python) Swiss FinteCH event
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 

Ähnlich wie Python + Excel

파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리Booseol Shin
 
Linq to object using c#
Linq to object using c#Linq to object using c#
Linq to object using c#병걸 윤
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R BasicsYoonwhan Lee
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130Yong Joon Moon
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기Yong Joon Moon
 
Programming java day2
Programming java day2Programming java day2
Programming java day2Jaehoonyam
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
2015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌32015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌3ssuseraf62e91
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 명신 김
 
Data Mining with R CH1 요약
Data Mining with R CH1 요약Data Mining with R CH1 요약
Data Mining with R CH1 요약Sung Yub Kim
 
[Algorithm] Counting Sort
[Algorithm] Counting Sort[Algorithm] Counting Sort
[Algorithm] Counting SortBill Kim
 
Function calling convention
Function calling conventionFunction calling convention
Function calling conventionYuk SeungChan
 
고등학생 R&E Python summary for test
고등학생 R&E Python summary for test고등학생 R&E Python summary for test
고등학생 R&E Python summary for testKyunghoon Kim
 
코딩테스트 합격자 되기 2주차 스터디 - 리스트_딕셔너리
코딩테스트 합격자 되기 2주차 스터디 - 리스트_딕셔너리코딩테스트 합격자 되기 2주차 스터디 - 리스트_딕셔너리
코딩테스트 합격자 되기 2주차 스터디 - 리스트_딕셔너리ultrasuperrok
 
Excel Basic (엑셀 베이직)
Excel Basic (엑셀 베이직)Excel Basic (엑셀 베이직)
Excel Basic (엑셀 베이직)Kwan Seung Yang
 

Ähnlich wie Python + Excel (20)

파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리
 
Linq to object using c#
Linq to object using c#Linq to object using c#
Linq to object using c#
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
Scala
ScalaScala
Scala
 
2015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌32015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌3
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
 
Data Mining with R CH1 요약
Data Mining with R CH1 요약Data Mining with R CH1 요약
Data Mining with R CH1 요약
 
Java_08 collection
Java_08 collectionJava_08 collection
Java_08 collection
 
Java collection
Java collectionJava collection
Java collection
 
[Algorithm] Counting Sort
[Algorithm] Counting Sort[Algorithm] Counting Sort
[Algorithm] Counting Sort
 
R intro
R introR intro
R intro
 
Ch10
Ch10Ch10
Ch10
 
Function calling convention
Function calling conventionFunction calling convention
Function calling convention
 
고등학생 R&E Python summary for test
고등학생 R&E Python summary for test고등학생 R&E Python summary for test
고등학생 R&E Python summary for test
 
코딩테스트 합격자 되기 2주차 스터디 - 리스트_딕셔너리
코딩테스트 합격자 되기 2주차 스터디 - 리스트_딕셔너리코딩테스트 합격자 되기 2주차 스터디 - 리스트_딕셔너리
코딩테스트 합격자 되기 2주차 스터디 - 리스트_딕셔너리
 
Excel Basic (엑셀 베이직)
Excel Basic (엑셀 베이직)Excel Basic (엑셀 베이직)
Excel Basic (엑셀 베이직)
 

Mehr von POSTECH

한국 힙합 피쳐링 네트워크 분석.
한국 힙합 피쳐링 네트워크 분석. 한국 힙합 피쳐링 네트워크 분석.
한국 힙합 피쳐링 네트워크 분석. POSTECH
 
한국힙합 인스타 팔로윙 네트워크 분석
한국힙합 인스타 팔로윙 네트워크 분석한국힙합 인스타 팔로윙 네트워크 분석
한국힙합 인스타 팔로윙 네트워크 분석POSTECH
 
Pyconkr2018 - quantify myself: self 사생활침해
Pyconkr2018 - quantify myself: self 사생활침해Pyconkr2018 - quantify myself: self 사생활침해
Pyconkr2018 - quantify myself: self 사생활침해POSTECH
 
quantify myself - Self사생활침해
quantify myself - Self사생활침해quantify myself - Self사생활침해
quantify myself - Self사생활침해POSTECH
 
공사다망공사파이 1년의 역사
공사다망공사파이 1년의 역사공사다망공사파이 1년의 역사
공사다망공사파이 1년의 역사POSTECH
 
Python(basic)
Python(basic)Python(basic)
Python(basic)POSTECH
 
How to use IFTTT(Automate your life)
How to use IFTTT(Automate your life)How to use IFTTT(Automate your life)
How to use IFTTT(Automate your life)POSTECH
 
2단 씁시다 진행방법 소개
2단 씁시다 진행방법 소개2단 씁시다 진행방법 소개
2단 씁시다 진행방법 소개POSTECH
 
일단 씁시다_진행방법소개
일단 씁시다_진행방법소개일단 씁시다_진행방법소개
일단 씁시다_진행방법소개POSTECH
 
대학원생 생존가이드
대학원생 생존가이드대학원생 생존가이드
대학원생 생존가이드POSTECH
 

Mehr von POSTECH (10)

한국 힙합 피쳐링 네트워크 분석.
한국 힙합 피쳐링 네트워크 분석. 한국 힙합 피쳐링 네트워크 분석.
한국 힙합 피쳐링 네트워크 분석.
 
한국힙합 인스타 팔로윙 네트워크 분석
한국힙합 인스타 팔로윙 네트워크 분석한국힙합 인스타 팔로윙 네트워크 분석
한국힙합 인스타 팔로윙 네트워크 분석
 
Pyconkr2018 - quantify myself: self 사생활침해
Pyconkr2018 - quantify myself: self 사생활침해Pyconkr2018 - quantify myself: self 사생활침해
Pyconkr2018 - quantify myself: self 사생활침해
 
quantify myself - Self사생활침해
quantify myself - Self사생활침해quantify myself - Self사생활침해
quantify myself - Self사생활침해
 
공사다망공사파이 1년의 역사
공사다망공사파이 1년의 역사공사다망공사파이 1년의 역사
공사다망공사파이 1년의 역사
 
Python(basic)
Python(basic)Python(basic)
Python(basic)
 
How to use IFTTT(Automate your life)
How to use IFTTT(Automate your life)How to use IFTTT(Automate your life)
How to use IFTTT(Automate your life)
 
2단 씁시다 진행방법 소개
2단 씁시다 진행방법 소개2단 씁시다 진행방법 소개
2단 씁시다 진행방법 소개
 
일단 씁시다_진행방법소개
일단 씁시다_진행방법소개일단 씁시다_진행방법소개
일단 씁시다_진행방법소개
 
대학원생 생존가이드
대학원생 생존가이드대학원생 생존가이드
대학원생 생존가이드
 

Python + Excel

  • 2. Contents! Python Excel module Install module(via pip) Excel with Python Example code #1(xlrd) Example code #2(xlwt) Example code #3(openpyxl) Reference
  • 3. Python Excel module Excel VBA처럼 Python에서도 Excel file을 읽고 쓸 수 있는 module들이 있음 여기서는 다음 두 가지만 설명 1) Xlrd(excel read) & xlwt(excel write): 활용하기 제일 쉬움 • 어차피 복잡한 수식 등은 python에서 직접 코딩하거나 엑셀에서 직접 처리하는게 편함 • 다만 xlwt에서는 xlsx 파일 지원하지 않음(xls만 지원), 따라서 최대 처리 행 수 65536으로 제한 2) OpenPyXl • Documentation도 잘되어 있으며, python에서 가장 많이 쓰이는 module 3) Xlswriter(write only) • Documentation이 잘 되어 있어서 활용하기 편함 4) PyExceleratre https://libsora.so/posts/python-excel-library/
  • 4. Install Package(via pip) 앞서 설명한 라이브러리를 활용하기 위해서는 module들을 하나하나 직접 설치해야 함 제어판 ==> 시스템 및 보안 ==> 시스템 ==> 고급 시스템 설정 ==> 고급 탭 ==> 환경 변수 ==> 시스템 변수, Path 변수에 Python이 설치된 폴더 경로를 입력 (기존 내용을 삭제하지 않고 “;”으로 구분하여 입력) 완료하면, 윈도우+r ==> cmd에서 바로 python으로 실행 가능 ex: pip install pandas ex: pip install numpy ex: pip install xlrd ex: pip install xlwt if it didn’t work pip install –-upgrade pip
  • 5. Example Code #1(xlrd. Excel Read) import xlrd workbook=xlrd.open_workbook("xlrd_test.xlsx")#read excel file worksheet1 = workbook.sheet_by_index(0) #Find worksheet 0(첫번째 시트) n_rows=worksheet1.nrows #sheet 내에 전체 row 수를 return row_list=[] #각 row를 넣을 list 생성 for row_num in range(n_rows): #모든 row에 대해서 list에 값을 집어넣음 row_list.append(worksheet1.row_values(row_num)) #row_list에 모든 row가 element로 모두 들어감
  • 6. Example Code #2(Xlwt, Write Excel) import xlwt workbook=xlwt.Workbook(encoding="utf-8") #utf-8 방식의 Workbook 생성 worksheet=workbook.add_sheet("kkk") # 시트이름이 “kkk”인 시트 추가 for row_index in range(0, 100): for col_index in range(0, 100): worksheet.write(row_index, col_index,0) #row_index, col_index에 0을 입력 #100x100 matrix를 엑셀파일 해당 시트에 입력완료 workbook.save("xlwt_test.xls") # 엑셀 파일 저장 # 앞서 말했듯이 xlwt에서는 xlsx를 지원하지 않음.
  • 7. Example Code #3(Openpyxl, Write Excel) From openpyxl import Workbook From openpyxl.cell import get_column_letter#해당 cell의 column letter return(예: A6 ==> A) Wb=Workbook()#wookbook 인스턴스 생성 Dest_filename=“empty_book.xlsx” #file name Ws1=wb.active#활성화되어 있는 시트를 활용 Ws2=wb.create_sheet(title=“Pi”) #이름이 “PI”인 시트 생성 Ws1.title=“range names” #시트의 이름을 변경 For row in range(1, 40):#cell index 시작이 1 ws1.append(range(600)) #0부터 599까지의 list를 각 row에 입력 #39x600 matrix가 생성 For col_index in range(1, 20): ws1.cell(row=40, column=col_index, value="=sum("+get_column_letter(col_index)+"1:"+get_column_letter(col_index)+"39)") #function을 string으로 집어넣음 ws2[“F5”]=3.14#F5에 3.14를 집어넣음 Wb.save(“empty_book.xlsx”)
  • 8. Example Code #4(Openpyxl, read excel) From openpyxl import load_workbook Wb=load_workbook(filename=“empty_book.xlsx”) # “empty_book.xlsx”를 읽음 Sheet1=wb[“range names”] #시트 설정 “range names”라는 시트를 sheet1에 저장 Print(sheet1[“D18”].value) #sheet1의 D18에 있는 값을 출력
  • 9. Example Code #5(Openpyxl, read excel) >>> import openpyxl >>> wb = openpyxl.load_workbook('example.xlsx') >>> wb.get_sheet_names()#전체 시트의 이름을 list로 return ['Sheet1', 'Sheet2', 'Sheet3'] >>> sheet3 = wb.get_sheet_by_name('Sheet3') #시트 이름으로 시트 찾아서 sheet변수에 넣음 >>> sheet3 <Worksheet "Sheet3"> >>> type(sheet) <class 'openpyxl.worksheet.worksheet.Worksheet'> >>> sheet.title 'Sheet3'
  • 10. Example Code #6(Openpyxl, read excel) >>> import openpyxl >>> wb = openpyxl.load_workbook('example.xlsx') >>> sheet = wb.get_sheet_by_name('Sheet1') >>> sheet['A1']#sheet의 A1에 대한 Cell instance <Cell Sheet1.A1> >>> sheet['A1'].value#Cell instance에서 value를 return하는 value method call datetime.datetime(2015, 4, 5, 13, 34, 2) >>> cell1 = sheet['B1'] >>> cell1.value 'Apples' >>> 'Row ' + str(cell1.row) + ', Column ' + cell1.column + ' is ' + cell1.value #cell instance에서 row index를 return 하는 row method #cell instance에서 column index를 return 하는 column method 'Row 1, Column B is Apples' >>> 'Cell ' + cell1.coordinate + ' is ' + cell1.value#row index, column index를 모두 return coordinate method 'Cell B1 is Apples' >>> sheet['C1'].value 73 A B C 1 2009-07-18 19:40 Apples 73 2 2009-07-21 18:32 Cherries 85 3 2009-07-20 15:17 Pears 14 4 2009-07-23 16:03 Oranges 52 5 2009-07-24 10:05 Apples 152 6 2009-07-26 21:39 Bananas 23 7 2009-07-07 19:21 Strawberries 98
  • 11. Example Code #7(Openpyxl, read excel) >>> sheet.cell(row=1, column=2)#i, j로 cell 에 접근 <Cell Sheet1.B1> >>> sheet.cell(row=1, column=2).value 'Apples' >>> for i in range(1, 8, 2): print(i, sheet.cell(row=i, column=2).value) 1 Apples 3 Pears 5 Apples 7 Strawberries >>> sheet.get_highest_row() 7 >>> sheet.get_highest_column() 3 A B C 1 2009-07-18 19:40 Apples 73 2 2009-07-21 18:32 Cherries 85 3 2009-07-20 15:17 Pears 14 4 2009-07-23 16:03 Oranges 52 5 2009-07-24 10:05 Apples 152 6 2009-07-26 21:39 Bananas 23 7 2009-07-07 19:21 Strawberries 98
  • 12. 기타 참고 사이트들 Python-excel http://www.python-excel.org/ Openpyxl https://openpyxl.readthedocs.org/en/default/index.html Automate the boring stuff.com(Working with Excel Spreadsheets) https://automatetheboringstuff.com/chapter12/