Python/PYTHON OpenPyXL (python and excel)

[openpyxl] 행이나 열 전체를 복사해서 이동

시키테이 2021. 2. 23. 14:00
반응형

앞에서는 그리고 복사할 때는 그냥 value 옵션을 이용해서 하면 된다고 했는데, 행이나 열 전체를 옮길 때는 조금 살짝 복잡할 수 있습니다. 

 

우선 1행 전체를 다 옮겨서 10줄 아래로 옮긴다고 가정하면, 

 

일단 전체 rows를 지정해줘야 합니다.

rows=ws.iter_rows(min_row=0, max_row=0)

그리고 각  row를 읽어주고 그 row에 있는 cell value 값을 다시 읽어주고 옮겨주면 됩니다. 

for row in rows:
    for cell in row:
        cell_new=ws.cell(row=15, column=cell.col_idx, value=cell.value)

여기서 cell.col_inx는 칼럼 배열 숫자를 얘기합니다. cell이 쓰는 칼럼 넘버. 종종 쓰세요. 유용합니다. 결과는 다음과 같습니다. 

 

 

칼럼 전체를 옮길 때는 다음처럼 

columns=ws.iter_cols(min_col=1, max_col=2)

for col in columns:
    for cell in col:
        cell_new=ws.cell(row=cell.row, column=15, value=cell.value)

여기서는 cell.row를 썼어요. cell.row_idx라는 게 있는 줄 알았는데 없더라구요. 그냥 cell.row로 씀 될 듯요. 

 

 

반응형