본문 바로가기

Python 파이썬

파이썬 Excel 다루기

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)