openpyxl 사용해서 엑셀 파일 쓰기

7003 단어 TILpythonTIL

openpyxl

엑셀 파일(xlsx, xlsm, xltx, xltm 파일)을 읽고 쓰는데 사용되는 파이썬 라이브러리다.
이 모듈을 사용하면 파이썬 프로그램이 스프레드 시트를 읽고 수정할 수 있게 도와준다.

openpyxl 설치

pip install openpyxl

설치가 잘 됐는지 확인하려면 pip list를 이용해서 받아진 라이브러리를 확인할 수 있다.

openpyxl 사용

새 워크북 생성 및 저장

import openpyxl

# 워크북을 생성하면 그 안에 워크시트 1개가 자동으로 생성
wb = Workbook()

# 엑셀 파일 저장할 위치 작성
file_path = "c://[저장 경로]"

# 현재 활성화 되어있는 시트를 가리킴
ws = wb.active

# 지정된 경로에 엑셀 파일 저장
wb.save(file_path)

기존 워크북 불러오기

import openpyxl

# 기존 엑셀 파일 불러오기
wb = openpyxl.load_workbook(filename='file_name.xlsx')

워크 시트 생성 및 활성화 워크 시트 변경

import openpyxl

# 새로운 시트를 만들고, 0번째(맨 왼쪽)에 위치 시키기
wb.create_sheet('새로운 시트 이름', 0)

# Sheet2를 가리킴
ws = wb['Sheet2']

셀 접근

# 현재 활성화 된 시트의 A1셀 접근
print(ws['A1'])

# A1 셀의 내용 확인
print(ws['A1'].value)

#또 다른 셀 접근방법, 세로 1번째 가로 7번째 셀을 의미
ws.cell(row = 1, column = 7) 

# 여러 개의 셀 접근
# A열의 모든 셀 가져옴
print(ws['A'])

처음 openpyxl을 사용해서 새로운 엑셀 파일을 생성하고, 그 안에 데이터를 입력하려고 하는데
Worksheet {0} does not exist 이라는 오류가 났다.

알고 보니까 엑셀에 기본적으로 존재하는 시트를 사용할 때는 활성화 되어 있는 시트를 active 해줘야 했다.

초기 코드

import openpyxl

wb = openpyxl.Workbook()
file_path = 'c://practice/test.xlsx'
wb['A1'].value = 'name'
wb['B1'].value = 'surname'
wb['C1'].value = 'email'
wb['D1'].value = 'password'

wb.save(file_path)

수정 코드

wb = openpyxl.Workbook()
file_path = 'c://practice/test.xlsx'

ws = wb.active

ws['A1'].value = 'name'
ws['B1'].value = 'surname'
ws['C1'].value = 'email'
ws['D1'].value = 'password'

wb.save(new_file)

좋은 웹페이지 즐겨찾기