Openpyxl_기초적인 사용법
파이썬에서 엑셀을 다루기 위한 패키지들이 다양한데 그 중에서 우리 회사는 openpyxl을 사용한다.
참조
workbook 생성
- 워크북 = 하나의 엑셀 파일(.xlsx) 전체
- 워크북 안에 워크시트(Sheet1, Sheet2 ,,)들이 존재
새 워크북 생성
사용하기 위해서는 import openpyxl 해주어야한다.
import openpyxl
wb = openpyxl.Workbook() # 워크북 생성시 자동으로 워크시트 1개 생성
ws = wb.active # 워크시트 활성화
# 우리회사에서는 openpyxl 생략하고 아래와 같이 작성후 사용
ws = Workbook().active
# or
wb = Workbook()
ws = wb.active
기존 워크북 불러오기
active
# 기존 엑셀 파일 load_workbook()으로 불러옴(openpyxl 생략)
wb = load_workbook(filename='filename.xlsx')
# 활성화 된 워크 시트
ws = wb.active # <Worksheet "Sheet1">
# 필요한 시트
ws = wb['시트명']
sheet_name
파일의 모든 시트명이 담긴 리스트는 get_sheet_names()
를 이용해 얻을 수 있다.
wb = load_workbook(filename='filename.xlsx')
sheet = wb.get_sheet_names('Sheet4') # # <Worksheet "Sheet4">
워크시트 생성
wb.create_sheet('새 시트명', 0) # 0 ->0번째(맨 왼쪽)에 시트 위치
엑셀 데이터 사용법
셀 자체를 가르키는 것과 해당 셀의 값을 읽어 오는것을 구분지어 알고 확인해야한다.
셀 접근법
접근 방법에는 두가지가 있다
ws[coordinate('B5')]
print(f'ws["B5"] : {ws["B5"]}') # B5 셀
print(f'ws["B5"].value : {ws["B5"].value}') # B5 셀의 값
-------------------------------------------------------
# ws["B5"] : <Cell Sheet1.B5>
# ws["B5"].value : 202009
ws.cell(row=@ , column=@ )
print(f'ws.cell(row=5, column=2) : {ws.cell(row=5, column=2)}') # 세로로 5번째, 가로로 2번째 셀
----------------------------------------------------------------
# ws.cell(row=5, column=2) :<Cell Sheet1.B5>
# ws.cell(row=5, column=2).value : 202009
❗️ 첫번째 열은 정수 1이 아닌 0이다
여러개의 셀 접근
print(f'ws["B"] : {ws["B"]}')
------------------------------------------------------
ws["B"] : (<Cell Sheet1.B1>, <Cell Sheet1.B2>, <Cell Sheet1.B3>,
......<Cell Sheet1.B29>, <Cell Sheet1.B30>)
여러개의 cell을 튜플 형태로 묶어 반환한다.
print(ws['B5':'C7'])
------------------------------------------------------
((<Cell Sheet1.B5>, <Cell Sheet1.C5>), (<Cell Sheet1.B6>, <Cell Sheet1.C6>), (<Cell Sheet1.B7>, <Cell Sheet1.C7>))
#-----------------------------------------------------
for row in ws['B5':'C7']:
print(row)
------------------------------------------------------
(<Cell Sheet1.B5>, <Cell Sheet1.C5>)
(<Cell Sheet1.B6>, <Cell Sheet1.C6>)
(<Cell Sheet1.B7>, <Cell Sheet1.C7>)
#------------------------------------------------------
for row in ws['B5':'C7']:
for cell in row:
print(cell) # 여기서 cell.value 찍으면 값 출력
------------------------------------------------------
<Cell Sheet1.B5>
<Cell Sheet1.C5>
<Cell Sheet1.B6>
<Cell Sheet1.C6>
<Cell Sheet1.B7>
<Cell Sheet1.C7>
ws['B5':'C7']
는 B5부터 C7까지의 cell을 모두 포함하고 있다. ws['B5':'C7']
로 여러개의 cell을 tuple 형태로 묶어 반환하고, for문을 이용해 각 cell의 접근할 수 있다.
❗️ 순서는 행 -> 열 순서로 tuple이 반환
Author And Source
이 문제에 관하여(Openpyxl_기초적인 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ziy0ung1229/Openpyxl기초적인-사용법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)