본문 바로가기
IT/Python

[파이썬] 엑셀 시트 전체 값 가져오기 / 셀 좌표 확인 / 리스트 형태

by 베베야 2021. 11. 18.
728x90

파이썬을 이용한 엑셀파일 시트에 데이터를 한줄 씩 넣는 방법과

넣은 데이터의 좌표와 전체 값을 가져오는 방법에 대해서 알아보자

 

1.데이터 한줄씩 넣기(리스트 형식)

랜덤 함수를 사용했기 때문에 실행할 때 마다 값이 변경될 수 있다.

from openpyxl import Workbook
from random import *
wb = Workbook()
ws = wb.active
ws.title = "bebesheet" #엑셀 시트명 변경

# 한줄 씩 데이터 넣기(리스트)
#제목 구분자
ws.append(["번호", "영어", "수학"]) #한줄씩 입력가능(리스트 형식으로) # A B C

#점수 데이터
for i in range(1,11): #10개 데이터 넣기
    ws.append([i, randint(0,100), randint(0,100)]) #랜덤 함수를 사용해서 1~100점까지 랜덤 점수 넣기
   
wb.save("test.xlsx")

 

2. 전체 값 가져오기

from openpyxl import Workbook
from random import *
wb = Workbook()
ws = wb.active
ws.title = "bebesheet" #엑셀 시트명 변경

# 한줄 씩 데이터 넣기(리스트)
ws.append(["번호", "영어", "수학"]) #한줄씩 입력가능(리스트 형식으로) # A B C
for i in range(1,11): #10개 데이터 넣기
    ws.append([i, randint(0,100), randint(0,100)]) #랜덤 함수를 사용해서 1~100점까지 랜덤 점수 넣기

#3. 모든 셀값 가져오기
from openpyxl.utils.cell import coordinate_from_string #셀에대한 좌표 정보를 가져오기 위한 import
row_range_all = ws[2:ws.max_row] #2번째 줄부터 마지막 줄까지
for rows in row_range_all:
    for cell in rows:
        print(cell.value, end=" ") #셀의 값 출력
        #print(cell.coordinate, end=" ") #셀의 좌표정보 가져오기 A/2, A/3 ~ C/11
    print()



wb.save("test.xlsx")

 

3. 좌표 값 가져오기

from openpyxl import Workbook
from random import *
wb = Workbook()
ws = wb.active
ws.title = "bebesheet" #엑셀 시트명 변경

# 한줄 씩 데이터 넣기(리스트)
ws.append(["번호", "영어", "수학"]) #한줄씩 입력가능(리스트 형식으로) # A B C
for i in range(1,11): #10개 데이터 넣기
    ws.append([i, randint(0,100), randint(0,100)]) #랜덤 함수를 사용해서 1~100점까지 랜덤 점수 넣기



#셀 좌표 값 가져오기
from openpyxl.utils.cell import coordinate_from_string #셀에대한 좌표 정보를 가져오기 위한 import
row_range_all = ws[2:ws.max_row] #2번째 줄부터 마지막 줄까지
for rows in row_range_all:
    for cell in rows:
        #print(cell.value, end=" ") #셀의 값 출력
        print(cell.coordinate, end=" ") #셀의 좌표정보 가져오기 A/2, A/3 ~ C/11
    print()



wb.save("test.xlsx")

 

4. 좌표 값 가져오기(변수로 받아서)

변수로 받아서 표현하는것 말고는 위와 결과가 동일하다.

from openpyxl import Workbook
from random import *
wb = Workbook()
ws = wb.active
ws.title = "bebesheet" #엑셀 시트명 변경

# 한줄 씩 데이터 넣기(리스트)
ws.append(["번호", "영어", "수학"]) #한줄씩 입력가능(리스트 형식으로) # A B C
for i in range(1,11): #10개 데이터 넣기
    ws.append([i, randint(0,100), randint(0,100)]) #랜덤 함수를 사용해서 1~100점까지 랜덤 점수 넣기



#셀 좌표 값 변수로 받아서 가져오기
from openpyxl.utils.cell import coordinate_from_string #셀에대한 좌표 정보를 가져오기 위한 import
row_range_all = ws[2:ws.max_row] #2번째 줄부터 마지막 줄까지
for rows in row_range_all:
    for cell in rows:
        #print(cell.value, end=" ") #셀의 값 출력
        #print(cell.coordinate, end=" ") #셀의 좌표정보 가져오기 A/2, A/3 ~ C/11
        xy = coordinate_from_string(cell.coordinate) #좌표 정보를 xy 변수에 넣음
        print(xy[0], end="")
        print(xy[1], end=" ")
    print()

wb.save("test.xlsx")

사용한 파이썬 소스코드 다운로드

주석으로 정리가 잘 되어 있으니 파일을아서 활용

5-3_cell_range_all.py
0.00MB

반응형
그리드형

댓글