Python openpyxl column 조작 방법 4가지

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

Python openpyxl column 조작용 시트

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

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

열 추가

D열과 E열 사이에 열을 하나 추가하려고 합니다. 워크시트 모듈의 insert_cols 메서드를 사용하면 되며 파라미터에 열의 위치를 알려주면 됩니다. 열은 알파벳으로 표현되므로 4열과 5열이 되겠죠. 값으로 5를 넣어줍니다.

ws.insert_cols(5)
Python
그림 2. Python openpyxl column D열과 E열 사이에 1개의 열 추가 결과
그림 2. Python openpyxl column D열과 E열 사이에 1개의 열 추가 결과

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

ws.insert_cols(4, 2)
Python

아래 그림을 보면 D열 위치부터 2개의 열이 추가된 것을 확인할 수 있습니다.

그림 3. Python openpyxl column D열에 2개의 열 추가 결과
그림 3. Python openpyxl column D열에 2개의 열 추가 결과

열 삭제

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

ws.delete_cols(2)
Python

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

그림 4. Python openpyxl column 2열 삭제 결과
그림 4. Python openpyxl column 2열 삭제 결과

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

ws.delete_cols(2, 3)
Python

2열부터 4열까지 3개 열의 값이 모두 사라지고 5열의 값들이 2열에 와서 붙어있는 것을 확인할 수 있습니다.

그림 5. Python openpyxl column 2열부터 3개 열 삭제 결과
그림 5. Python openpyxl column 2열부터 3개 열 삭제 결과

열 잘라내기 및 붙여넣기

열을 잘라내는 기능은 별 다를 것이 없이 열의 내용을 복사하고, 해당 열을 삭제하는 순서로 진행하면 됩니다. 여기에서는 2열의 내용을 잘라내는 기능을 구현해 보도록 하겠습니다.

# 2번째 열의 내용을 data_col에 복사하기
data_col = list(ws.iter_cols(min_col=2, max_col=2, values_only=True))[0]
# 2번째 열을 삭제하기
ws.delete_cols(2)
Python

열을 붙여넣기 하는 것은 그대로 붙여넣는 것입니다. 따라서 기존에 해당 열에 있는 내용은 덮어씌워지기 때문에 특정 열에 끼워넣기 위해서는 위에서 사용한 열 추가 후 붙여넣기를 하면 끼워넣기가 가능합니다.

# 4번째 열 앞에 열 추가
ws.insert_cols(4)
# 4번째 열에 복사한 내용 붙여넣기
for row, value in enumerate(data_col, start=1):
  ws.cell(row=row, column=4, value=value)
Python

위의 코드들을 모두 실행한 결과는 다음과 같습니다. 2열에 있던 내용이 4열로 오려서 끼워넣어진 것을 확인할 수 있습니다.

그림 6. Python openpyxl column 2열 오려서 4열에 끼워넣은 결과
그림 6. Python openpyxl column 2열 오려서 4열에 끼워넣은 결과

열의 너비 조절하기

열의 너비는 column_dimensions의 width 값을 이용해서 설정할 수 있습니다. 열 값은 문자열로 ‘B’ 와 같이 넣어주셔야 합니다. insert_cols나 delete_cols와는 다릅니다.

# 2번째 열의 너비를 20으로 설정
ws.column_dimensions['B'].width = 20
Python

B열의 너비를 20으로 변경한 결과는 다음 그림과 같습니다.

그림 7. Python openpyxl column B열 너비 20으로 변경한 결과
그림 7. Python openpyxl column B열 너비 20으로 변경한 결과

정리

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

관련 자료

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

같이 읽으면 좋은 글

Leave a Comment