Excel 다루기
- openpyxl 라이브러리 사용
- 파이썬을 이용해 업무 자동화 구현
1. 파일 열기
- 라이브러리 불러오기
# 라이브러리
import openpyxl as xl
- 엑셀 파일 열기
# wb 변수에 엑셀 파일 저장
wb = xl.load_workbook('practice.xlsx')
- 시트 이름 확인
# 시트 이름 확인
wb.sheetnames
['Sheet1', 'Sheet2']
2. 파일 읽기
- 시트 선택
# 시트 선택
sheet1 = wb['Sheet1']
- 셀 이름으로 셀 값 확인
# 셀 이름으로 셀 값 확인
sheet1['A1'].value
'water'
- 행, 열 번호로 셀 값 확인
# 행과 열 번호로 셀 값 확인
# sheet1.cell(row=1, column=1).value
sheet1.cell(1, 1).value
'water'
- 크기 확인 (행 크기, 열 크기)
# 데이터 크기 확인
print(sheet1.min_row, sheet1.max_row) # 시작 행, 끝 행
print(sheet1.min_column, sheet1.max_column) # 시작 열, 끝 열
1 5
1 2
** A열을 하나씩 출력
# 음료 이름 출력
for i in range(1,sheet1.max_row + 1):
print(sheet1.cell(i,1).value)
water
coke
lemonade
tea
coffee
3. 파일에 쓰기
- 셀 값 수정
# 시트1의 A1 값에 sparkling 입력
sheet1['A1'].value = sparkling
# A1 셀 값 확인
sheet1['A1'].value
'sparkling'
=> 이미 값이 있어도, 새로 넣어주면 수정됨
4. 행/열 추가, 삭제
# 엑셀 파일 열기
wb = xl.load_workbook("practice.xlsx")
# 시트 지정
sheet1 = wb['Sheet1']
# 셀 값 확인
print(sheet1.cell(1, 1).value, sheet1.cell(1, 2).value)
print(sheet1.cell(2, 1).value, sheet1.cell(2, 2).value)
print(sheet1.cell(3, 1).value, sheet1.cell(3, 2).value)
sparkling Good
coke Good
lemonade Good
- 행 추가 ( insert_rows() )
# 행 추가
sheet1.insert_rows(2)
# 셀 값 확인
print(sheet1.cell(1, 1).value, sheet1.cell(1, 2).value)
print(sheet1.cell(2, 1).value, sheet1.cell(2, 2).value)
print(sheet1.cell(3, 1).value, sheet1.cell(3, 2).value)
sparkling Good
None None
coke Good
=> 2행에 셀이 추가됐고, 아직 값이 없어 None으로 값이 출력됨
- 열 추가 ( insert_cols() )
# 열 추가
sheet1.insert_cols(2)
# 셀 값 확인
print(sheet1.cell(1, 1).value, sheet1.cell(1, 2).value, sheet1.cell(1, 3).value)
print(sheet1.cell(2, 1).value, sheet1.cell(2, 2).value, sheet1.cell(2, 3).value)
print(sheet1.cell(3, 1).value, sheet1.cell(3, 2).value, sheet1.cell(3, 3).value)
# 저장
# wb.save('Animal.xlsx')
sparkling None Good
None None None
coke None Good
=> 2열에 셀이 추가됐고, 아직 값이 없어 None으로 값이 출력됨
=> 추가하고 저장하기 위해서 save() 메소드 사용
- 행/열 삭제 ( delete_rows(), delete_cols() )
# 행 삭제
sheet1.delete_rows(2)
# 열 삭제
sheet1.delete_cols(2)
# 셀 값 확인
print(sheet1.cell(1, 1).value, sheet1.cell(1, 2).value, sheet1.cell(1, 3).value)
print(sheet1.cell(2, 1).value, sheet1.cell(2, 2).value, sheet1.cell(2, 3).value)
print(sheet1.cell(3, 1).value, sheet1.cell(3, 2).value, sheet1.cell(3, 3).value)
'Python 파이썬' 카테고리의 다른 글
파이썬 데이터프레임 - pandas 기초(1) (0) | 2023.02.20 |
---|---|
파이썬 배열 - numpy 기초 (0) | 2023.02.17 |
파이썬 경로 확인, 텍스트 파일 읽고 쓰기 (0) | 2023.02.14 |
파이썬 정규표현식 (0) | 2023.02.13 |
파이썬 함수 (0) | 2023.02.13 |