이번에 업무하면서 파이썬으로 엑셀 목록 자동화하는 것을 해보았음!
취뽀 이틀만에 프로젝트 주셔서... 너무나 감사했습니다..
네... 정말로 감사했습니다...🙊
어쨌거나, 업무하면서 유용한 파이썬 라이브러리를 알게 되었으니..
설치방법
pip install openpyxl
from openpyxl import Workbook
wb = Workbook() # 비어있는 객체 만들기
ws = wb.active
workbook.active를 통해 워크시트를 활성화 할 수 있음.
from openpyxl import Workbook
# 이름이 있는 시트를 생성
write_ws = write_wb.create_sheet('생성시트')
# Sheet1에다 입력
write_ws = write_wb.active
write_ws['A1'] = '숫자'
#행 단위로 추가
write_ws.append([1,2,3])
#셀 단위로 추가
write_ws.cell(5, 5, '5행5열')
write_wb.save("C:/Users/Administrator/Desktop/기준/프로그래밍/과제대행/주식데이터크롤링/숫자.xlsx") # 본인 주소
ws1 = wb.create_sheet("시트1") # 끝에 삽입 (기본값)
ws2 = wb.create_sheet("시트2", 0) # 첫 번째 위치에 삽입
ws3 = wb.create_sheet("시트3", -1) # 끝에서 두 번째 위치에 삽입
wb.sheetnames로 시트의 이름들을 확인 할 수 있음.
Worksheet.title 속성으로 워크시트의 이름을 변경할 수 있음.
wb.copy_worksheet(source)으로 워크시트를 복사할 수 도 있음.
from openpyxl import load_workbook
# data_only=True로 해줘야 수식이 아닌 값으로 받아온다.
load_wb = load_workbook("C:/Users/Administrator/Desktop/기준/프로그래밍/과제대행/주식데이터크롤링/output.xlsx", data_only=True)
# 시트 이름으로 불러오기
load_ws = load_wb['Sheet1']
# 셀 주소로 값 출력
print(load_ws['B2'].value)
# 셀 좌표로 값 출력
print(load_ws.cell(3, 2).value)
# 지정한 셀의 값 출력
get_cells = load_ws['B3' : 'B6']
for row in get_cells:
for cell in row:
print(cell.value)
# 모든 행 단위로 출력
for row in load_ws.rows:
print(row)
# 모든 열 단위로 출력
for column in load_ws.columns:
print(column)
# 모든 행과 열 출력
all_values = []
for row in load_ws.rows:
row_value = []
for cell in row:
row_value.append(cell.value)
all_values.append(row_value)
print(all_values)
load_ws.cell(3, 3, 51470)
load_ws.cell(4, 3, 21470)
load_ws.cell(5, 3, 1470)
load_ws.cell(6, 3, 6470)
load_wb.save("C:/Users/Administrator/Desktop/기준/프로그래밍/과제대행/주식데이터크롤링/output.xlsx") # 본인 주소
다중 셀에 들어갈 때 슬라이싱으로 접근할 수 있음
cell_range = ws['A1':"C2"]
cell_range
worksheet.iter_rows()메서드를 통해 행을 가져올 수도 있음.
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for cell in row:
print(cell)
Worksheet.iter_cols()를 통해 열도 가져올 수 있음.
for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
for cell in col:
print(cell)
성능 상의 이유로 Workbook.iter_cols() 메서드는 읽기 전용 모드에서 사용할 수 없음.
파일의 모든 행이나 열을 반복해야 하는 경우 Worksheet.rows 속성을 대신 사용함.
ws = wb.active
ws['C9'] = "Hello World"
tuple(ws.rows)
혹은 Worksheet.columns 속성을 통해 열도 추출 가능
tuple(ws.columns)
파일로 저장
:xlsx, xlsm으로 저장하는 경우가 많음.
wb = Workbook()
wb.save("document.xlsx")
템플릿 파일로 저장
문서 -> 템플릿
from openpyxl import load_workbook
wb = load_workbook("document.xlsx")
wb.template = True
wb.save("template.xltx")
템플릿 -> 문서
wb = load_workbook("template.xltx")
wb.template = False
wb.save("document.xlsx")
뭐 파이썬으로 ppt 하는 방법도 있다는데... 시간 되면 정리해봐야징
참조: [https://wooiljeong.github.io/python/openpyxl-tutorial/ ]