• Python 엑셀 지원 모듈

xlwt, openpyxl, xlsxwriter, pyexcelerate
openpyxl : http://openpyxl.readthedocs.org
로컬에 엑셀 프로그램이 설치되어 있지 않아도 엑셀파일 생성과 읽기가 가능
대용량 지원, 이미지 지원
pip install openpyxl

 

openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.0.9 documentation

Install openpyxl using pip. It is advisable to do this in a Python virtualenv without system packages: Warning To be able to include images (jpeg, png, bmp,…) into an openpyxl file, you will also need the “pillow” library that can be installed with:

openpyxl.readthedocs.io

 

  • 엑셀 열고, 데이터 읽기
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 엑셀파일 로드
print(wb.get_sheet_names()) # sheet name list, ['전체진행', 'sample', 'Sheet2']
sheet = wb.get_sheet_by_name('sample')
print(sheet.title) # sample
another_sheet = wb.active # 현재 활성화된 시트 확인
print(another_sheet.title) # Sheet2

mycell = sheet['A1'] 
print(mycell.value) # A1 cell 값 가져오기 
print(mycell.coordinate) # A1

print(sheet.cell(row=1, column=1).value) # A1 cell 값 가져오기, 주로사용
for i in range(1,11):  # A열의 1~10row값 출력
    print('{} {}'.format(i, sheet.cell(row=i, column=1).value))

print(sheet.max_row)
print(sheet.max_column)
wb.close() # Don't forget

 

  • 엑셀, 여러 셀 접근하기
cell_range = sheet['A1' : 'C2'] # A1~ C2 영역 
colC = sheet['C'] # C 컬럼
col_range = sheet['C:D'] # C~D 컬럼
row10 = sheet[10] # 10번째 row
row_range = sheet[5:10] # 5번째~10번째 row

 

  • 엑셀 읽기 (특정 영역)
cell_range = sheet['A1' : 'C2'] # A1~ C2 영역 
colC = sheet['C'] # C 컬럼
col_range = sheet['A:D'] # A~D 컬럼
row10 = sheet[10] # 10번째 row
row_range = sheet[5:10] # 5번째~10번째 row

for col in col_range:
    for cell in col:
        print(cell.value)
    print('')

for row in row_range:
    for cell in row:
        print(cell.value)
    print('')

 

  • 엑셀 문서 만들고, sheet명 바꾸고, cell에 데이터 쓰고, 저장하기
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = '시트명 바꾸기' # sheet 이름 변경
sheet.cell(row=1, column=1, value='A1데이터') # cell에 데이터 쓰기
wb.create_sheet('sheet2') # 마지막 시트 추가
wb.save('pyexcel.xlsx') # 파일명으로 저장

 

  • 엑셀 쓰기
# 특정 cell에 쓰기
sheet['A1'] = 'hello' 
sheet.cell(row=1, column=2, value='world')

# 수식 사용
sheet['A3'] = '=SUM(A1:A2)' # A1+A2 결과값을 A3에 쓰기
sheet.merge_cell('A1:D3') # A1 ~ D3의 사각형 영역을 합쳐서 하나의 cell로 만들기

 

https://replit.com/@dhshin38/Tutorial-Python#myexcel.py

 

Tutorial Python

A Python repl by dhshin38

replit.com

 

'Python' 카테고리의 다른 글

Python 이메일 보내기, 가져오기  (0) 2022.01.23
Python csv 파일  (0) 2022.01.23
Python 클래스, 상속, Override  (0) 2022.01.23
Python logging 로그  (0) 2022.01.23
Python 예외 처리  (0) 2022.01.23

+ Recent posts