오늘 배워 오늘 쓰는 OpenAPI/프로젝트
[Python-pptx] 부동산 지역 분석 보고서 만들기 (자동화)
ai-creator
2020. 5. 23. 10:06
반응형
< 목표 >
부동산 지역분석 포스팅을 통해 저장된 그래프를 사용하여
파워포인트를 이용하여 보고서를 만들어보겠습니다. 물론, 프로그램이 자동으로 수행되게요~
<사전 준비 >
- 부동산 지역분석 내용을 step6) 까지 수행
** 아래 작성된 소스코드는 <사전준비>를 통해
graph 폴더에 png 파일 다운로드 및 법정동 코드로 sigu_list가 있는 상태로 동작하는 소스코드 입니다.
# Step1) 파워포인트 객체 선언
from pptx import Presentation # 라이브러리
from pptx.util import Inches # 사진, 표등을 그리기 위해
prs = Presentation() # 파워포인트 객체 선언
# Step2) 제목 layer
title_slide_layout = prs.slide_layouts[0] # 0 : 제목슬라이드에 해당
slide = prs.slides.add_slide(title_slide_layout) # 제목 슬라이드를 파워포인트 객체에 추가
# 제목 - 제목에 값넣기
title = slide.shapes.title # 제목
title.text = "지역별 아파트 분석" # 제목에 값 넣기
# 부제목
subtitle = slide.placeholders[1] # 제목상자는 placeholders[0], 부제목상자는 [1]
subtitle.text = "작성자 : 홍길동"
# Step3) 시/구 하드 코딩
제일 아래 코드에는 si/gu list로 수행합니다.
si="서울특별시"
gu = "광진구"
# Step4) 그래프 layer
Step4-1) 수공급 그래프
img_path = 'graph\\%s_%s_수공급.png' %(si, gu)
title_only_slide_layout = prs.slide_layouts[5]
slide = prs.slides.add_slide(title_only_slide_layout)
shapes = slide.shapes
shapes.title.text = '%s %s 수공급' %(si, gu)
left = Inches(0.5)
height = Inches(5)
width = Inches(9)
top = Inches(2)
# width, hegith가 없을 경우 원본 사이즈로
pic = slide.shapes.add_picture(img_path, left, top, width=width,height=height)
Step 4-2) 아파트 목록 그래프
img_path = 'graph\\%s_%s_대장아파트.png' %(si, gu)
title_only_slide_layout = prs.slide_layouts[5]
slide = prs.slides.add_slide(title_only_slide_layout)
shapes = slide.shapes
shapes.title.text = '%s %s 아파트 목록' %(si, gu)
left = Inches(0.5)
height = Inches(5)
width = Inches(9)
top = Inches(2)
# width, hegith가 없을 경우 원본 사이즈로
pic = slide.shapes.add_picture(img_path, left, top, width=width,height=height)
Step 4-3) 매매 전세 그래프
img_path = 'graph\\%s_%s_대장아파트매매전세.png' %(si, gu)
title_only_slide_layout = prs.slide_layouts[5]
slide = prs.slides.add_slide(title_only_slide_layout)
shapes = slide.shapes
shapes.title.text = '%s %s 대장아파트매매전세' %(si, gu)
left = Inches(0.5)
height = Inches(5)
width = Inches(9)
top = Inches(2)
# width, hegith가 없을 경우 원본 사이즈로
pic = slide.shapes.add_picture(img_path, left, top, width=width,height=height)
# Step5) 저장
prs.save('apt_report.pptx')
# 최종 완성본
## 객체 선언
from pptx import Presentation # 라이브러리
from pptx.util import Inches # 사진, 표등을 그리기 위해
prs = Presentation() # 파워포인트 객체 선언
## 제목슬라이드
title_slide_layout = prs.slide_layouts[0] # 0: 제목슬라이드
slide = prs.slides.add_slide(title_slide_layout)
#> 제목
title = slide.shapes.title
title.text = "지역별 아파트 분석"
#> 부제목
subtitle = slide.placeholders[1]
subtitle.text = "작성자 : 홍길동"
# 이미지 슬라이드 추가 (함수)
def add_imagelayer(img_pth, title_text):
img_path = img_pth
title_only_slide_layout = prs.slide_layouts[5]
slide = prs.slides.add_slide(title_only_slide_layout)
shapes = slide.shapes
shapes.title.text = title_text
left = Inches(0.5)
height = Inches(5)
width = Inches(9)
top = Inches(2)
# width, hegith가 없을 경우 원본 사이즈로
pic = slide.shapes.add_picture(img_path, left, top, width=width,height=height)
# 반복문으로 이미지 슬라이드 추가하기
for sigu in sigu_list[1:6]:
si = sigu.split(" ")[0]
gu = sigu.split(" ")[1]
print(si, gu)
add_imagelayer('graph\\%s_%s_수공급.png' %(si, gu), '%s %s 수공급' %(si, gu))
add_imagelayer('graph\\%s_%s_대장아파트.png' %(si, gu), '%s %s 아파트 목록' %(si, gu))
add_imagelayer('graph\\%s_%s_대장아파트매매전세.png' %(si, gu), '%s %s 대장아파트매매전세' %(si, gu))
# 저장
prs.save('apt_report.pptx')
정말 멋진 파워포인트가 뿅! 하고 나타났습니다.
오늘도 칼퇴하세요~ㅎㅎ
저작물의 저작권은 작성자에게 있습니다.
공유는 자유롭게 하시되 댓글 남겨주세요~
상업적 용도로는 무단 사용을 금지합니다.
끝까지 읽어주셔서 감사합니다^^
반응형