openpyxl 줄바꿈 처리가 필요하신가요? 바로 처리 방법 알아보겠습니다.
목차
Python openpyxl 줄바꿈 처리 방법
openpyxl을 이용해서 엑셀 파일을 제작하는 경우에 길어지는 문자열이 셀의 영역을 넘어가지 않고 줄바꿈 처리해야 하는 경우가 있습니다. 이 경우에는 Alignment 클래스를 이용하여 wrap_text 또는 wrapText에 bool 값으로 지정해 주면 됩니다. True인 경우에는 wrap_text가 적용되며, False인 경우 줄바꿈이 되지 않습니다.
from openpyxl import Workbook
from openpyxl.styles import Alignment
wb = Workbook()
ws = wb.active
row_num = 1
ws[f'A1'].value = f"줄바꿈 없음: ①대한민국은 민주공화국이다.\n②대한민국의 주권은 국민에게 있고, 모든 권력은 국민으로부터 나온다."
alignment = Alignment(wrap_text=True)
ws[f'A2'].alignment = alignment
ws[f'A2'].value = f"줄바꿈(Wrap): ①대한민국은 민주공화국이다.\n②대한민국의 주권은 국민에게 있고, 모든 권력은 국민으로부터 나온다."
ws.row_dimensions[1].height = 90
ws.row_dimensions[2].height = 90
ws.column_dimensions['A'].width = 30
wb.save("output_wrap.xlsx")
Python1행의 경우 줄바꿈을 하지 않은 것이며, 2행은 줄바꿈을 적용한 결과입니다.
줄바꿈 미적용이 안되는 경우
Python openpyxl 셀 수직 정렬 방법 5가지와 Python openpyxl 셀 수평 정렬 방법 8가지에서 Alignment에 justify나 distributed를 이용하는 경우에는 우선적으로 줄바꿈처리가 되므로, 별도로 wrap_text/wrapText 값을 False로 설정해줘도 작동하지 않습니다.
관련 자료
openpyxl.sheets의 alignment 클래스의 wrapText, wrap_text 파라미터 관련 문서를 참조했습니다.