본문 바로가기
아래아한글 자동화/python+hwp 중급

[QnA] 엑셀에서 줄바꿈된 텍스트를 한/글로 옮길 때 줄바꿈 유지하기

by 일코 2022. 8. 4.
안녕하세요. 엑셀의 데이터를 한글로 옮기는 자동화 방법을 찾다가 유튜브에서 상장 만들기 컨텐츠를 보고 신세계를 경험했습니다. ^^ 그런데 그 과정 중에 엑셀에서 자동줄바꿈을 통해서 줄이 띄어져 있는 텍스트가 한글 (누름틀)로 입력이 되면 줄바꿈이 적용이 되지 않고 붙어서 입력이 되어서요. 혹시 엑셀의 줄 바꿈 편집이 그대로 한글에 엔터로 줄을 바꾼 것으로 적용되게 하는 방법이 없을까요? 번거로우시겠지만 답변 부탁드립니다.

 

안녕하세요?

이스케이프 문자열 차이 때문에 발생하는 간단한 문제이지만,

처음 겪을 때는 알쏭달쏭하기도 합니다.

 

해결방법을 먼저 알려드리면,

엑셀에서는 줄바꿈을 "\n"이라는 이스케이프 문자열로 처리합니다.

한/글에서는 줄바꿈을 "\n"이 아닌, "\r\n"으로만 인식합니다.

(그 외에도 리눅스 등 유닉스계열의 OS는 줄바꿈으로 "\n"을 사용하고, 윈도우는 "\r\n"을 사용하고 있습니다.)

 

결론을 먼저 알려드림 : 문자열.replace("\n", "\r\n")

그래서 엑셀의 줄바꿈인 "\n"을 모두 "\r\n"으로 바꾸어주어야 합니다.

바꾸는 방법은 간단한데,

아래처럼 replace 메서드를 추가하시면 됩니다.

a = "hello\nworld"
a = a.replace("\n", "\r\n")

예를 들어 설명해드리겠습니다.

1. 우측아래 엑셀파일의 A1 셀에 줄바꿈을 넣은 "Hello\nWorld"를 입력했습니다.

2. 우측 위 한/글파일에는 "a1"이라는 누름틀을 만들어 두었습니다.

3. hwp.PutFieldText("a1", ws.Cells(1,1).Value)를 실행하면?

(예상한 대로) 줄바꿈이 없어지고 한 줄로 입력이 되어버렸습니다.

 

이제, 코드를 아래와 같이 실행해봅니다.

우리가 원하는대로 줄바꿈이 적용되었습니다.

엑셀과 한글간 데이터교환을 할 때에는 꼭 필요한 절차이므로

항상 유념해 주시기 바랍니다.

 

행복한 하루 되세요!

댓글