Python openpyxl row 관련 조작 방법 4가지를 알아보겠습니다.
목차
Python openpyxl row 조작용 시트
우선 행(row) 관련 조작 이전에 조작을 위해 사용할 간략한 원본 시트를 하나 작성했습니다.
행 추가
2행과 3행 사이에 행을 하나 추가하려고 합니다. 워크시트의 insert_rows 메서드를 사용하면 되며 파라미터에 행 값을 넣어주면 됩니다.
ws.insert_rows(3)
Python만약 여러 행을 추가하고 싶다면, insert_rows()의 파라미터를 2개 넣어주면 됩니다. 첫째 파라미터는 행 값이며, 둘째 파라미터는 추가할 행의 개수입니다. 3행부터 2개의 행을 추가해 보도록 하겠습니다.
ws.insert_rows(3, 2)
Python행 삭제
행을 삭제할 때에는 워크시트의 delete_rows 메서드를 사용합니다. 파라미터로 행 값을 넣어주면 해당 행이 삭제됩니다.
ws.delete_rows(3)
Python아래 그림을 보면 기존에 있던 3행의 값들이 모두 사라진 것을 확인할 수 있습니다.
마찬가지로 여러 행을 삭제하고 싶다면 delete_rows 메서드의 두번째 파라미터에 삭제할 행의 갯수를 지정해 주면 됩니다.
ws.delete_rows(3, 2)
Python3행과 4행의 값이 모두 사라지고 5행의 값들이 3행으로 올라와 있는 것을 확인할 수 있습니다.
행 잘라내기 및 붙여넣기
행을 잘라내는 기능은 별 다를 것이 없이 행의 내용을 복사하고, 해당 행을 삭제하는 순서로 진행하면 됩니다. 여기에서는 4행의 내용을 잘라내는 기능을 구현해 보도록 하겠습니다.
# 3번째 행의 내용을 data_row에 복사하기
data_row = list(ws.iter_rows(min_row=4, max_row=4, values_only=True))[0]
# 3번째 행을 삭제하기
ws.delete_rows(4)
Python행을 붙여넣기 하는 것은 그대로 붙여넣는 것입니다. 하지만 기존에 해당 행에 있는 내용은 덮어씌워지기 때문에 특정 행에 끼워넣기 위해서는 위에서 사용한 행 추가 후 붙여넣기를 하면 끼워넣기가 가능합니다.
# 2번째 행 앞에 행 추가
ws.insert_rows(2)
# 2번째 행에 복사한 내용 붙여넣기
for col, value in enumerate(data_row, start=1):
ws.cell(row=2, column=col, value=value)
Python위의 코드들을 모두 실행한 결과는 다음과 같습니다. 4행에 있던 내용이 2행으로 오려서 끼워넣어진 것을 확인할 수 있습니다.
행의 높이 조절하기
행의 높이는 row_dimensions의 height 값을 이용해서 설정할 수 있습니다.
# 1번째 행의 높이를 50으로 설정
ws.row_dimensions[3].height = 50
Python3번 행의 높이를 50으로 변경한 결과는 다음 그림과 같습니다.
정리
여기까지 Python openpyxl을 사용할 때 row와 관련된 기능들로 행 추가, 여러 행 추가, 행 삭제, 여러 행 삭제, 행 잘라내기 및 끼워넣기, 그리고 마지막으로 행의 높이를 설정하는 방법까지 살펴보았습니다.
관련 자료
openpyxl의 Worksheet 문서를 참고했습니다.