Python/PythonLibrary

openpyxl 라이브러리 간단 정리 (엑셀다루기)

leehii 2022. 8. 25. 16:25

 

import openpyxl as op

: 환경도구 불러오기

 

wb = op.Workbook()

:객체생성

 

wb = op.load_workbook(경로+'/파일명')

: 엑셀파일 불러오기

  (xls 파일 지원안함. xlrd 사용필요 xlrd.open_workbook )

  이때 경로에 / 가 아닌 \를 쓰게 될 경우   

  r '경로' 로 유니코드 오류가 뜨지않게 해주는것을 유의

 

wb.save('경로+파일명')

: 엑셀파일 저장

  마찬가지고 \ 일경우  r을 붙여 유니코드 오류뜨지않게 하기

 

wb.sheetnames

: 불러온 엑셀파일의 Sheet 확인하기 > 이를 통해 WorkSheet를 다룰수 있음

 

ws = wb.active

: 활성화된 Sheet를 가르킴

 

ws = wb.create_sheet('생성할 Sheet 명')

: Sheet를 생성하는 방법 / 이후 wb.save()로 저장해줘야한다

 

ws = wb['Sheet명']

: wb.sheetnames  로 확인한 Sheet명을 인덱싱해서 객체를 생성하는 방법

 

  같은 방법으로

  ws['셀 번호']   를 통해 A1, B1등의 셀 자체에,

  ws['셀 번호'].value    를 통해 해당 셀의 내용에 접근할 수도 있다

 

ws['A']     

: 해당 열의 모든 셀 가져오기

 

for cell in ws['A']

    print(cell.value)

: 해당 열의 모든 셀  내용가져오기

 

row_A = [ cell.value for cell in ws['A'] ]

for문을 이런식으로도 사용해서 가져올 수 있음

 

 

ws.cell( row = row index 번호, column = col index 번호).values

: row의 인덱스번호와 col의 인덱스 번호를 통해 cell 데이터를 확인 가능함

  이때 주의할점은 엑셀파일이므로 0번 인덱스 시작이 아닌, 1번 인덱스 시작이다

 

이를 활용하여

ws.cell( row = row index 번호, column = col index 번호) = 입력데이터

이런식으로 특정위치에 원하는 내용을 입력할 수 있다

 

한번에 입력을 원할때는 list 안에 원하는 데이터를 저장하고

 

index = 1 

for i in list :

  ws.cell(row=1,column=1).value = i

  index+=1

 

이런 방식으로 저장이 가능하다

 

 

ws['A1:B1']

ws['A1:C3']

 

이런식으로 슬라이싱해서 접근할 수도 있다

 

ws.columns_dimensions['선택할 열'].width = ?

:열 너비 변경하기