RPA/Python

[openpyxl] Cell에 값 쓰기/읽기

꼰대 2021. 4. 22. 12:41

from openpyxl import Workbook

from openpyxl.utils.cell import coordinate_from_string

from random import *

 

# 새 파일 생성

wb = Workbook()

 

# 기존 파일 읽기라면...

# from openpyxl import load_workbook

# wb = load_workbook("demo.xlsx")

 

 

ws = wb.active

 

 

# Cell에 값 쓰기 1 (A : 열 - column, 1 : 행 - row)

ws["A1"] = 'test'

ws["A2"] = '한글'

ws["A3"] = 3

ws["B1"] = 4

ws["B2"] = 5

ws["B3"] = 6

 

# Cell에 값 쓰기 2

# row = 1 -> 1, column = 1 -> A)

ws.cell(row=1, column=1, value='test')

ws.cell(row=2, column=1, value='한글')

ws.cell(row=3, column=1, value=3)

ws.cell(row=1, column=2, value=4)

ws.cell(row=2, column=2, value=5)

ws.cell(row=3, column=2, value=6)

 

# Cell에 값 쓰기 3

# 한 줄 넣기

ws.append(['7', '8'])

 

for i in range(15):

    ws.append(i, randint(0100)])

 

 

# Cell 값 읽기 1

print(ws['A1'].value)

 

# Cell 값 읽기 2

print(ws.cell(row=1, column=2).value)

 

# 전체 Cell 값 읽기

for x in range(1, ws.max_row+1):

    for y in range(1, ws.max_column+1):

        print(ws.cell(row=x, column=y).value, end=" ")

    print()

 

# 하나의 column 전체 값 읽기

col = ws['A']

for cell in col:

    print(cell.value)

 

# 하나의 row 전체 값 읽기

row = ws[1]

for cell in row:

    print(cell.value)

 

# 전체 row에서 첫번쨰 값 (tuple[0]) 읽기

# print(tuple(ws.rows))

for row in tuple(ws.rows):

    print(row[0].value) -> (A1, A2, A3 .... )

    # print(row[1].value) -> (B1, B2, B3 ...)

 

# 전체 column에서 첫번쨰 값 (tuple[0]) 읽기

# print(tuple(ws.columns))

 

for col tuple(ws.columns):

    print(col[0].value) -> (A1, B1, C1 .... )

    # print(col[1].value) -> (A2, B2, C2 ...)

 

# 전체 column 읽기

for row in ws.iter_rows():

    print(row[0].value) -> (A1, A2, A3 ...)

    # print(row[1].value) -> (B1, B2, B3 ...)

 

# 전체 row 읽기

for col in ws.iter_cols():

    print(col[0].value) -> (A1, B1, C1 ...)

    # print(col[1].value) -> (A2, B2, C2 ...)

 

# 범위 내에서 값이 있는 cell의 좌표 정보 읽기

row_range = ws[1:ws.max_row]

for rows in row_range:

    for cell in rows:

        xy = coordinate_from_string(cell.coordinate)

        print(xy, end=" ")

        print(xy[0], end="")

        print(xy[1], end=" ")

    print()

 

wb.save("demo.xlsx")

반응형