다양한 데이터 저장/읽기 - 엑셀(xlsx) 파일
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
3. 다양한 데이터 저장/읽기 - 엑셀(xlsx) 파일¶
3.1. 다양한 데이터 읽기1 - xlsx 파일¶
- pandas 라이브러리 활용
- read_excel() 메서드 활용
In [43]:
import pandas as pd
doc = pd.read_excel("03_data/sample.xlsx")
doc
Out[43]:
In [44]:
# 특정한 쉬트만 읽기
import pandas as pd
doc = pd.read_excel("03_data/sample.xlsx", sheetname="Sheet2")
doc
Out[44]:
3.2. 다양한 데이터 읽기/저장2 - xlsx 파일¶
- openpyxl 라이브러리 활용
- xlsx 파일 읽고, 저장 모두 가능
- 설치
- pip install openpyxl
In [ ]:
import openpyxl
# 엑셀파일 열기
excel_file = openpyxl.load_workbook('03_data/sample.xlsx')
excel_sheet = excel_file.get_sheet_by_name("Sheet1")
for row in excel_sheet.rows:
print(row[0].row)
print(row[1].value)
print(row[2].value)
excel_sheet.cell(row=row[0].row, column=3).value = 10
# 엑셀 파일 저장
excel_file.save("03_data/sample2.xlsx")
excel_file.close()
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
In [ ]:
import openpyxl
# 엑셀파일 열기
excel_file = openpyxl.load_workbook('03_data/sample.xlsx')
excel_sheet = excel_file.get_sheet_by_name("Sheet1")
total = 0
count = 0
for row in excel_sheet.rows:
if count > 1:
print(row[0].row)
total = total + int(row[2].value)
count += 1
print(count)
excel_sheet.cell(row=count+1, column=3).value = total
excel_file.save("03_data/sample3.xlsx")
excel_file.close()
In [ ]:
import openpyxl
# 엑셀파일 열기
excel_file = openpyxl.load_workbook('03_data/sample.xlsx')
excel_sheet = excel_file.get_sheet_by_name("Sheet1")
total = 0
count = 0
In [ ]:
for row in excel_sheet.rows:
if count > 1:
print(row[0].row)
total = total + int(row[2].value)
count += 1
In [ ]:
print(total)
excel_sheet.cell(row=count+1, column=3).value = total
In [ ]:
excel_file.save("03_data/sample3.xlsx")
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
가장 빠르게 풀스택 개발자가 될 수 있도록, 최적화된 로드맵을 제공합니다
연습문제: openpyxl 라이브러리 다루기
03_data/sample.xlsx 파일의 Sheet1 에 댓글수 총 합계를 댓글수 마지막 셀에 넣어서 sample03.xlsx 파일로 저장하기
3.3. 다양한 데이터 저장3 - xlsx 파일 (엑셀을 셀단위로 조작하여 엑셀 파일 제대로 만들기)¶
- xlsxwriter 라이브러리를 활용
- xlsx 엑셀 파일 (최신 엑셀 포멧) 작업 가능
- 셀단위로 세부적인 조작이 가능함
- 설치
- pip install xlsxwriter
- 사용법
- xlsx 엑셀 파일 생성
- 엑셀 파일 내 쉬트 생성
- 셀 단위 길이 설정
- 셀 단위 폰트 굵기, 정렬, 셀배경색, 폰트색, 셀외곽선종류 설정
- 셀 단위 데이터 입력
In [54]:
'''
다음 기능을 모두 구현한 예제
- xlsx 엑셀 파일 생성
- 엑셀 파일 내 쉬트 생성
- 셀 단위 길이 설정
- 셀 단위 폰트 굵기, 정렬, 셀배경색, 폰트색, 셀외곽선종류 설정
- 셀 단위 데이터 입력
'''
import xlsxwriter
title_list = ["웹기술", "빅데이터기술", "IoT", "DataScience", "adfdf", "dfadfadf", "ddd"]
hit_count_list = [2000, 10000, 2000, 2000, 4000, 5000, 6000, 4040]
report_excel = xlsxwriter.Workbook('report.xlsx')
report_sheet1 = report_excel.add_worksheet('report1')
report_sheet2 = report_excel.add_worksheet('report2')
report_sheet1.set_column(0, 0, 5)
report_sheet1.set_column(1, 1, 80)
report_sheet2.set_column(0, 0, 5)
report_sheet2.set_column(1, 1, 80)
cell_format = report_excel.add_format({'bold': True, 'align': 'center', 'fg_color': '#FFC107', 'color': 'blue', 'border': 10})
report_sheet1.write(1, 1, '타이틀', cell_format)
report_sheet1.write(1, 2, '클릭수', cell_format)
report_sheet2.write(1, 1, '타이틀', cell_format)
report_sheet2.write(1, 2, '클릭수', cell_format)
cell_format_gray = report_excel.add_format({'fg_color': '#ECEFF1', 'border': 1})
cell_format_white = report_excel.add_format({'fg_color': 'white', 'border': 1})
for num in range(len(title_list)):
report_sheet1.write(num + 2, 1, title_list[num], cell_format_gray)
report_sheet1.write(num + 2, 2, hit_count_list[num], cell_format_white)
for num in range(len(title_list)):
report_sheet2.write(num + 2, 1, title_list[num], cell_format_gray)
report_sheet2.write(num + 2, 2, hit_count_list[num], cell_format_white)
report_excel.close()