이번 포스트는 만들어진 엑셀 파일의 데이터를 가져오고, 입력하는 방법에 대하여 알아 보도록 하겠습니다.
from openpyxl import load_workbook
모듈을 가져옵니다.
wb = load_workbook('cell.xlsx')
ws = wb.active
가져올 파일을 wb 변수에 담고, 활성화 된 시트를 ws 변수에 담습니다.
for x in range(1,11):
for y in range(1,11):
print(ws.cell(column=x, row=y).value, end=" ")
print()
for 문을 써서 column 과 row를 1부터 10까지의 좌표에 값을 가져옵니다.
결과값은 위와 같습니다.
셀의 개수(행과 열의 개수)를 모를때는 아래와 같이 작성하면 됩니다.
for x in range(1, ws.max_column + 1):
for y in range(1, ws.max_row + 1):
print(ws.cell(row=y, column=x).value, end=" ")
print()
[end=" "] 를 사용하면 출력을 가로로 표시 해 줍니다.
이번에는 append를 사용하여 셀에 값을 입력해 보겠습니다.
from openpyxl import Workbook
from random import *
wb = Workbook()
ws = wb.active
모듈을 가져오고 변수를 지정합니다.
ws.append(['No', 'Eng', 'Math'])
듀플 형태로 내용을 입력합니다. append를 사용하면 A1부터 차례로 입력이 됩니다.
for i in range(1,11):
ws.append([i, randint(0,100), randint(0,100)])
wb.save('cell_range.xlsx')
1부터 99까지의 숫자 중 랜덤값으로 입력을 하였습니다.
위와 같이 엑셀에 값이 입력되었습니다.
이번에는 데이터를 가져 와 보도록 하겠습니다.
col_B = ws['B']
print(col_B)
for cell in col_B:
print(cell.value, end=" ")
첫번째 row 만 가져오면 아래와 같이 사용할 수 있습니다.
row_title = ws[1]
for cell in row_title:
print(cell.value)
2번째 줄에서 6번째 줄가지 가져올려면 아래와 같이 입력합니다.
row_range = ws[2:6]
for rows in row_range:
for cell in rows:
print(cell.value, end=" ")
print()
2번째 줄에서 마지막 줄까지 마지막 줄까지 가져오려면 max_row를 사용하면 됩니다.
from openpyxl.utils.cell import coordinate_from_string
row_range = ws[2:ws.max_row]
for rows in row_range:
for cell in rows:
xy = coordinate_from_string(cell.coordinate)
print(xy, end=" ")
print()
coordinate_from_string을 사용하면 'A1', 'B2' 이런 형식의 좌표값을 가져올 수 있습니다.
결과는 위와 같이 나옵니다.
듀플 형태이기 때문에 하나만 가져올려면 인덱스 번호를 사용하면 됩니다.
print(xy[0]) 은 마지막 'C'를 반환하고, print(xy[1])은 11을 반환합니다.
'파이썬(Python) > 파이썬으로 엑셀 제어하기' 카테고리의 다른 글
파이썬으로 엑셀 VBA 매크로를 작동 시키는 방법(Calling Excel VBA Macro script by using Python script) (0) | 2021.04.01 |
---|---|
xlwings - 설치 및 addin 설정 방법 (0) | 2021.03.31 |
Python openpyxl - 셀에 값 입력하기 (0) | 2021.03.21 |
Python openpyxl - 파일생성, 시트명 바꾸기, 탭색 변경 (0) | 2021.03.17 |
openpyxl - 여러 엑셀파일 데이터 가져오기 (0) | 2020.12.31 |
댓글