Python openpyxl column 관련 조작 방법 4가지를 알아보겠습니다.
목차
Python openpyxl column 조작용 시트
우선 열(column) 관련 조작 이전에 조작을 위해 사용할 간략한 원본 시트를 하나 작성했습니다.
열 추가
D열과 E열 사이에 열을 하나 추가하려고 합니다. 워크시트 모듈의 insert_cols 메서드를 사용하면 되며 파라미터에 열의 위치를 알려주면 됩니다. 열은 알파벳으로 표현되므로 4열과 5열이 되겠죠. 값으로 5를 넣어줍니다.
ws.insert_cols(5)
Python만약 여러 열을 추가하고 싶다면, insert_cols()의 파라미터를 2개 넣어주면 됩니다. 첫째 파라미터는 열 위치이며, 둘째 파라미터는 추가할 열의 개수입니다. 4열부터 2개의 열을 추가해 보도록 하겠습니다.
ws.insert_cols(4, 2)
Python아래 그림을 보면 D열 위치부터 2개의 열이 추가된 것을 확인할 수 있습니다.
열 삭제
열을 삭제할 때에는 워크시트의 delete_cols 메서드를 사용합니다. 파라미터로 열 값을 넣어주면 해당 열이 삭제됩니다.
ws.delete_cols(2)
Python아래 그림을 보면 기존에 있던 2열의 값들이 모두 사라진 것을 확인할 수 있습니다.
마찬가지로 여러 열을 삭제하고 싶다면 delete_cols 메서드의 두번째 파라미터에 삭제할 열의 갯수를 지정해 주면 됩니다.
ws.delete_cols(2, 3)
Python2열부터 4열까지 3개 열의 값이 모두 사라지고 5열의 값들이 2열에 와서 붙어있는 것을 확인할 수 있습니다.
열 잘라내기 및 붙여넣기
열을 잘라내는 기능은 별 다를 것이 없이 열의 내용을 복사하고, 해당 열을 삭제하는 순서로 진행하면 됩니다. 여기에서는 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열로 오려서 끼워넣어진 것을 확인할 수 있습니다.
열의 너비 조절하기
열의 너비는 column_dimensions의 width 값을 이용해서 설정할 수 있습니다. 열 값은 문자열로 ‘B’ 와 같이 넣어주셔야 합니다. insert_cols나 delete_cols와는 다릅니다.
# 2번째 열의 너비를 20으로 설정
ws.column_dimensions['B'].width = 20
PythonB열의 너비를 20으로 변경한 결과는 다음 그림과 같습니다.
정리
여기까지 Python openpyxl을 사용할 때 column(열)와 관련된 기능들로 열 추가, 여러 열 추가, 열 삭제, 여러 열 삭제, 열 잘라내기 및 끼워넣기, 그리고 마지막으로 열의 높이를 설정하는 방법까지 살펴보았습니다.
관련 자료
openpyxl의 Worksheet 문서를 참고했습니다.