Python/PYTHON OpenPyXL (python and excel)

[openpyxl] 각 엑셀 행과 열에 새로운 값을 입력할 경우

시키테이 2020. 6. 4. 08:47
반응형

 아주 단순한 작업으로, 1부터 100까지의 숫자를 각 행과 열 순서대로 한다고 하면 다음과 같이 하면 됩니다. 

 

우선 새로운 엑셀 파일을 만들고 여기에 ws.iter_rows를 통해 순차적으로 

wb=openpyxl.Workbook()
ws=wb["Sheet"]

counter = 1
for row in ws.iter_rows(min_row=1, max_col=10, max_row=10):
    for cell in row:
        cell.value = counter
        counter += 1

 

그러면 아래와 같이 나옵니다. 

 

칼럼 순서대로 하려고 하면 ws.iter_rows를 대신 쓰면 되겠지요. 여기서는 새로운  sheet(ws2)를 만들어서 더해봅니다. 

 

ws2=wb.create_sheet("New")

counter = 1
for col in ws2.iter_cols(min_col=1, max_col=10, max_row=10):
    for cell in col:
        cell.value = counter
        counter += 1

그러면 아래와 같이..

 

조금 다른 내용이긴 한데 만약에 각 셀에 cooridnate string 값을 넣는다고 하면 어떻게 하면 될까요? 아래와 같이 실행하면 가능합니다. 

 

row_string = ""
for row in ws.iter_rows(min_row=1, max_col=ws.max_column, max_row=ws.max_row):
    for cell in row:
        row_string += "{:<3}".format(str(cell.coordinate) + " ")
    row_string += "\n"
print(row_string)

그러면 다음과 같이..

 

A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 

A2 B2 C2 D2 E2 F2 G2 H2 I2 J2

A3 B3 C3 D3 E3 F3 G3 H3 I3 J3

...

A10 B10 C10 D10 E10 F10 G10 H10 I10 J10

반응형