openpyxl 패키지 사용

$ pip install openpyxl

엑셀파일 불러오기

1. 워크북(엑셀파일) 불러오기

  • load_workbook(‘파일명’) : 해당 엑셀파일 불러오기
import openpyxl

wb = openpyxl.load_workbook('text.xlsx')

2. 워크시트 불러오기

  • worksheets[시트번호] : 시트순서로 불러오기 (0부터 시작)
  • get_sheet_by_name(‘시트명’) : 시트명으로 불러오기
  • active : 활성시트(default 시트) 불러오기
ws = wb.worksheets[0]                   # 1번째 시트 불러오기
ws = wb.get_sheet_by_name('user')       # 'user' 시트 불러오기
ws = wb.active                          # 활성시트 불러오기

3. 셀값 불러오기

  • ws[‘셀’].value : 해당 셀의 값 불러오기
    ws['A1'].value
  • max_column : 컬럼 수
  • max_row : 로우 수
  • rows : 로우 iterator
import openpyxl

wb = openpyxl.load_workbook('text.xlsx')
ws = wb.worksheets[0]

for row in ws.rows:
    current_row = row[0].row    # 현재 행 index (1부터 시작) (row[0].row = row[1].row)

    if current_row == 1:        # 첫번째행(열이름) 패스
        pass

    name = row[0].value
    phone = row[1].value.strip().replace('-', '')

    user = User(name=name, phone=phone)
    user.save()

엑셀파일 생성하기

1. 워크북(엑셀파일) 생성

import openpyxl

wb = openpyxl.WorkBook()

2. 워크시트 불러오기

  • create_sheet(“시트명”, 위치) : 워크시트 생성
ws1 =  wb.create_sheet("Mysheet")               # 마지막(default)에 생성
ws2 =  wb.create_sheet("Mysheet_first", 0)      # 첫번째에 생성

3. 셀값 작성

ws1.title = 'test1 Sheet'
ws1['A1'] = 'test1'
ws1['A2'] = '=SUM(1,1)'
ws1.cell(row=2, column=3).value = '10'

4. 워크북(엑셀파일) 저장

wb.save('testing.xlsx')
wb.close()