[파이썬_엑셀][4. 셀 크기 자동조절-블로그 요약]
파이썬으로 엑셀의 셀 크기 자동 조절을 하는 방법을 설명함.
[파이썬_엑셀]4. 셀 크기 자동조절
지난시간에는 엑셀파일에 입력된 값에 스타일을 적용하는 방법을 확인했습니다.
이번에는 우리가 입력한 값들을 정리된 상태로 볼 수 있는 셀 크기 자동조절에 대해서 알아 보겠습니다.
(두가지 버전으로 설명 드리겠습니다. - 왜 2가지 버전인지는 밑에 자세히 작성해 놓았습니다.)
Formal한 방식이 아니라, 구글에 검색해서 찾아보고 해보는 방식으로 공부를 했습니다.
내용은 굉장히 주관적이고 전문적으로 공부를 하신분들이 보기에 굉장이 부족한점이 있으니,
참조 부탁드립니다.
파이썬으로 엑셀을 실행하고 저장하고 파일을 생성하면,
종종 에러가 발생됩니다.
프로그램을 시동하기전에 엑셀창은 전부 닫아주시길 부탁드립니다.
이번 장에서 설명할 부분은 엑셀 스타일 입력(글꼴, 정렬)에서 사용한 함수를 그대로 사용하고
추가적으로 셀 크기 자동조절 부분을 추가 할 것입니다.
두가지 방법으로 설명을 드릴예정이며, 그 중 Win32.com 라이브러리를 통한 방법을 추천 드립니다.
하지만, 두 방법, 모두
병합된 셀의 자동조절은 안되오니 참조 부탁드립니다.
1. 셀 크기 자동조절(엑셀파일 실행해서 해결) - 추천 함!!!
파이썬으로 엑셀파일을 만들고 저장 한뒤, 엑셀프로그램을 실행해서 셀 크기 자동 조절을 진행함.
[잠깐만!!]
제 수준으로 확인한 셀 크기 자동조절을 실행하는 방법은
1. 파이썬으로 원하는 엑셀파일을 만들고, 저장한다.
2. Win32로 엑셀프로그램을 실행하고, 저장한 엑셀파일을 볼러온다.
3. 불러온 엑셀파일의 셀 크기 조절을 하고 저장 한다.
[특징]
1) 글자의 크기에 따라 엑셀의 크기가 조절됨.
--> 엑셀 프로그램을 실행해서 자동조절 하는 방식과 동일함.
[시작 전 준비사항]
"3. 엑셀 스타일 입력(글꼴,정렬)"에서 사용한 파이썬 파일에 셀 크기 자동조절 함수를 추가함.
1. Win 32라이브러리를 추가함.
2. Win32라이브러리를 통해서 엑셀 프로그램을 실행하고, 파일을 불러옴.
[잠깐만!!]
혹시다 실행이 안되면, 하기와 같이 변경해야함.
: 이유는 잘 모르겠습니다. 저도 2개의 컴퓨터가 있는데 하나의 컴퓨터에서는 둘다 아무런 문제가 없으나,
다른 하나의 컴퓨터에서는 "win32.gencache.EnsureDispatch"은 실행이 안됨.
win32.gencache.EnsureDispatch --> win32.Dispatch
3. 모든 엑셀 시트의 행과 열의 크기를 자동으로 조절함.
[잠깐만!!]
For 문을 사용하지 않고, 풀어서 작성하면 파이썬이 길어집니다.
4. 수정한 엑셀 시트를 저장하고, 실행한 엑셀 프로그램을 끝냄.
[셀 크기 자동 조절 함수] - 참 짧죠~
[스타일 함수 + 셀 크기 자동 조절 함수]
["개똥"시트의 엑셀 결과 화면]
2. 셀 크기 자동조절(엑셀파일 실행해서 해결) - 추천 함!!!
1번 방법으로도 셀 크기 자동조절이 안되는 부분이 있습니다.(병합된 셀 제외)
1. 셀 크기 자동조절이 안되는 서식
-.1. "Wrap Text(줄바꿈)"이 걸려 있는 엑셀
[줄바꿈이 걸려 있는 엑셀을 자동조절 하기] - 엑셀 내에서 진행
[기본상태]
1. 셀을 크기를 넓힌다.
2. 셀을 더블 클릭해서, 셀의 크기를 자동 조절 한다.
2. "Wrap Text(줄바꿈)"이 걸린 셀 자동 조절 방법
-. 1번 방식(win32)로 작동한 셀 크기 자동조절은 하기와 같이 나옴.
1. win32로 셀 크기 자동조절을 실행하기 전에, 셀의 크기를 강제로 넓힌다.
-. 반드시 실제 작성한 내용의 길이보다 넓게 폭을 지정해야 함.
-. 강제로 셀의 폭을 100으로 지정함.
2. win32로 셀 크기 자동조절을 실행한다.
3. 셀 크기 자동조절(파이썬 내에서 해결) - 추천 안함.
파이썬으로 엑셀파일을 만들고 함수를 통해서 파일을 실행하고 저장하는 방법으로 진행함.
[잠깐만!!]
제 수준으로 확인한 셀 크기 자동조절을 실행하는 방법은
1. 각각의 행에서 가장 긴 값이 입력된 셀을 찾는다.
2. 해당 셀의 글자, 숫자 빈공간의 갯수(길이) 확인하다.
3. 확인 갯수(길이)에 뒤에 여유공간을 추가한다.
--> 영어로 가장긴 "W" 기준으로는 17을 추가 해야함. (한글은 또 다름)
[특징]
1) 글자의 폭 및 글자 크기가 다름에 따라 엑셀의 크기 조정 불가.
--> 엑셀에 입력된 갯수로 셀 넓이를 지정함.
글자의 폭이 다름????
-. 엑셀에 실제로 글자를 입력하면, 글자에 따라 폭이 다름을 알 수 있음.
[시작 전 준비사항]
"3. 엑셀 스타일 입력(글꼴,정렬)"에서 사용한 파이썬 파일에 셀 크기 자동조절 함수를 추가함.
1. 라이브러리 추가.(나중에 정규식 함수를 쓰기위한, 라이브러리 추가)
2. 엑셀 전체 시트를 기준으로 For문을 만듬.
3. 시트를 지정한 뒤, 시트내에서 행 전체를 범위로 지정하고, 확인 할 행들을 불러옴.
4. 각각의 행 내에서의 전체 셀을 조사함.(각각의 셀에 입력된 값들의 길이를 비교)
[잠깐만!!]
for문에서의 범위는 어떻게 되는가??
저의 지식내에서는 for문의 in 다음에 들어오는 값의
첫번째 요소부터 마지막 요소까지 차례로 변수에 대입해서 For문이 수행됨.
여기서 의문?? columns와 col의 끝은 무엇일까? 무한이 아닐까?
--> 사이트(https://openpyxl.readthedocs.io/)에서 찾아본 결과
"When a worksheet is created in memory, it contains no cells.
They are created when first accessed."
나름의 결론은 입력되기 전에는 값도 메모리도 할당되지 않고,
입력된 순간 부터 값도 메모리도 할당이 된다.
5. 계산된 글자수의 길이에 여유길이를 추가하고, 행의 폭을 결정함.
[셀 크기 자동 조절 함수]
[스타일 함수 + 셀 크기 자동 조절 함수]
["바보"시트(w5)의 엑셀 결과 화면]
*** Your memories make your destiny ***
'[파이썬] > [파이썬]엑셀' 카테고리의 다른 글
[파이썬_엑셀]5-2. 엑셀파일에서 값 불러오기(Pandas-Pivot) (0) | 2021.05.15 |
---|---|
[파이썬_엑셀]5-1. 엑셀파일에서 값 불러오기 (0) | 2020.12.23 |
[파이썬_엑셀]3. 엑셀 스타일 입력(글꼴,정렬) (0) | 2020.11.12 |
[파이썬_엑셀]2. 엑셀파일에 값 입력하기(Openpyxl) (0) | 2020.11.01 |
[파이썬_엑셀]1. 엑셀파일 만들기/저장하기 (2) | 2020.10.31 |
댓글