Python openpyxl row 조작방법 4가지

Python openpyxl row 관련 조작 방법 4가지를 알아보겠습니다.

Python openpyxl row 조작용 시트

우선 행(row) 관련 조작 이전에 조작을 위해 사용할 간략한 원본 시트를 하나 작성했습니다.

그림 1. Python openpyxl row 조작용 원본 시트
그림 1. Python openpyxl row 조작용 원본 시트

행 추가

2행과 3행 사이에 행을 하나 추가하려고 합니다. 워크시트의 insert_rows 메서드를 사용하면 되며 파라미터에 행 값을 넣어주면 됩니다.

ws.insert_rows(3)
Python
그림 2. Python openpyxl row 3행에 1개의 행 추가 결과
그림 2. Python openpyxl row 3행에 1개의 행 추가 결과

만약 여러 행을 추가하고 싶다면, insert_rows()의 파라미터를 2개 넣어주면 됩니다. 첫째 파라미터는 행 값이며, 둘째 파라미터는 추가할 행의 개수입니다. 3행부터 2개의 행을 추가해 보도록 하겠습니다.

ws.insert_rows(3, 2)
Python
그림 3. Python openpyxl row 3행에 2개의 행 추가 결과
그림 3. Python openpyxl row 3행에 2개의 행 추가 결과

행 삭제

행을 삭제할 때에는 워크시트의 delete_rows 메서드를 사용합니다. 파라미터로 행 값을 넣어주면 해당 행이 삭제됩니다.

ws.delete_rows(3)
Python

아래 그림을 보면 기존에 있던 3행의 값들이 모두 사라진 것을 확인할 수 있습니다.

그림 4. Python openpyxl row 3행 삭제 결과
그림 4. Python openpyxl row 3행 삭제 결과

마찬가지로 여러 행을 삭제하고 싶다면 delete_rows 메서드의 두번째 파라미터에 삭제할 행의 갯수를 지정해 주면 됩니다.

ws.delete_rows(3, 2)
Python

3행과 4행의 값이 모두 사라지고 5행의 값들이 3행으로 올라와 있는 것을 확인할 수 있습니다.

그림 5. Python openpyxl row 3행부터 2행 삭제 결과
그림 5. Python openpyxl row 3행부터 2행 삭제 결과

행 잘라내기 및 붙여넣기

행을 잘라내는 기능은 별 다를 것이 없이 행의 내용을 복사하고, 해당 행을 삭제하는 순서로 진행하면 됩니다. 여기에서는 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행으로 오려서 끼워넣어진 것을 확인할 수 있습니다.

그림 6. Python openpyxl row 4행 오려서 2행에 붙인 결과
그림 6. Python openpyxl row 4행 오려서 2행에 붙인 결과

행의 높이 조절하기

행의 높이는 row_dimensions의 height 값을 이용해서 설정할 수 있습니다.

# 1번째 행의 높이를 50으로 설정
ws.row_dimensions[3].height = 50
Python

3번 행의 높이를 50으로 변경한 결과는 다음 그림과 같습니다.

그림 7. Python openpyxl row 3행 높이 50으로 변경한 결과
그림 7. Python openpyxl row 3행 높이 50으로 변경한 결과

정리

여기까지 Python openpyxl을 사용할 때 row와 관련된 기능들로 행 추가, 여러 행 추가, 행 삭제, 여러 행 삭제, 행 잘라내기 및 끼워넣기, 그리고 마지막으로 행의 높이를 설정하는 방법까지 살펴보았습니다.

관련 자료

openpyxl의 Worksheet 문서를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment