用Python自動(dòng)生成數(shù)據(jù)分析報(bào)告

導(dǎo)讀:很多時(shí)候,我們需要做一些重復(fù)性的工作,比如說,每個(gè)月制作類似的數(shù)據(jù)分析報(bào)告,整個(gè)框架是基本固定的,此時(shí),我們可以采用 Python 來自動(dòng)生成數(shù)據(jù)分析報(bào)告,把更多的時(shí)間和精力用在分析上面,而不是調(diào)整報(bào)告的格式。
作者 / 來源:林驥(ID:linjiwx)






pip install python-pptx# 導(dǎo)入庫
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
# 模板下載 https://github.com/linjiwx/mp
prs = Presentation('模板.pptx')
# 添加幻燈片首頁
slide_layout0 = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout0)
# 設(shè)置標(biāo)題和副標(biāo)題文本
title = slide.shapes.title
subtitle = slide.placeholders[10]
title.text = '2020年9月林驥的數(shù)據(jù)分析報(bào)告'
subtitle.text = '2020-10-08'
# 添加幻燈片,正文模塊,根據(jù)實(shí)際需求選擇布局版式
# *************1. 主要分析結(jié)論*****************
slide_layout1 = prs.slide_layouts[1]
slide1 = prs.slides.add_slide(slide_layout1)
# 添加標(biāo)題
title = slide1.placeholders[10]
title.text = "1. 主要分析結(jié)論"
# 添加正文內(nèi)容
content = slide1.placeholders[11]
ft = content.text_frame
ft.clear()
p = ft.paragraphs[0]
run = p.add_run()
run.text = '(1) 年初制定的運(yùn)動(dòng)目標(biāo)是平均每天走'
# 重點(diǎn)強(qiáng)調(diào)的內(nèi)容
run = p.add_run()
run.text = '10000步'
font = run.font
font.name = 'Arial'
font.size = Pt(26)
font.color.rgb = RGBColor(0, 88, 159)
# 繼續(xù)添加其他內(nèi)容
run = p.add_run()
run.text = ',9月份的目標(biāo)完成率為'
# 重點(diǎn)強(qiáng)調(diào)的內(nèi)容
run = p.add_run()
run.text = '108.8%'
font = run.font
font.name = 'Arial'
font.size = Pt(26)
font.color.rgb = RGBColor(0, 88, 159)
# 繼續(xù)添加其他內(nèi)容
run = p.add_run()
run.text = ''',超額完成任務(wù)目標(biāo);
(2) 學(xué)習(xí)的各項(xiàng)指標(biāo)均有所提升,其中筆記方面的提升最為明顯,9月底的筆記評(píng)級(jí)變成'''
# 重點(diǎn)強(qiáng)調(diào)的內(nèi)容
run = p.add_run()
run.text = 'A+'
font = run.font
font.name = 'Arial'
font.size = Pt(26)
font.color.rgb = RGBColor(0, 88, 159)
# 繼續(xù)添加其他內(nèi)容
run = p.add_run()
run.text = '。'
# ***************2. 目標(biāo)完成情況******************
# 添加幻燈片
slide_layout2 = prs.slide_layouts[3]
slide2 = prs.slides.add_slide(slide_layout2)
# 添加正文模塊標(biāo)題
title= slide2.placeholders[10]
title.text = "2. 目標(biāo)完成情況"
# 插入圖片 https://github.com/linjiwx/mp
img_path='./pic/2. 目標(biāo)完成情況.jpg'
picture_placeholder = slide2.placeholders[11]
placeholder_picture = picture_placeholder.insert_picture(img_path)
# 添加描述內(nèi)容
content= slide2.placeholders[12]
content.text = ' '
# ***************3. 關(guān)鍵指標(biāo)變化******************
# 添加幻燈片
slide_layout3 = prs.slide_layouts[6]
slide3 = prs.slides.add_slide(slide_layout3)
# 添加正文模塊標(biāo)題
title= slide3.placeholders[10]
title.text = "3. 關(guān)鍵指標(biāo)變化"
# 插入圖片對(duì)象,主圖
img_path='./pic/3. 關(guān)鍵指標(biāo)變化.jpg'
picture_placeholder = slide3.placeholders[11]
placeholder_picture = picture_placeholder.insert_picture(img_path)
# 添加描述內(nèi)容
content= slide3.placeholders[12]
content.text = '''與年初相比,
各項(xiàng)指標(biāo)均有所提升,
其中筆記的提升最多,
9月底的筆記評(píng)級(jí)變成A+。
'''
# ***************4. 變化原因分析******************
# 添加幻燈片
slide_layout4 = prs.slide_layouts[1]
slide4 = prs.slides.add_slide(slide_layout4)
# 添加正文模塊標(biāo)題
title= slide4.placeholders[10]
title.text = "4. 變化原因分析"
# 添加描述內(nèi)容
content= slide4.placeholders[11]
content.text = '''
(1) 為了錯(cuò)開上班早高峰的時(shí)間,我早上通常在7點(diǎn)鐘之前就到了公司,增加了很多學(xué)習(xí)和寫讀書筆記的時(shí)間;
(2) 在OKR方法的指引下,我年初制定了精細(xì)閱讀26本書和原創(chuàng)寫作60篇文章的目標(biāo),用輸出倒逼輸入。
'''
# *************5. 建議改善措施*****************
slide_layout5 = prs.slide_layouts[1]
slide5 = prs.slides.add_slide(slide_layout5)
# 添加正文模塊標(biāo)題
title= slide5.placeholders[10]
title.text = "5. 建議改善措施"
# 添加內(nèi)容
content= slide5.placeholders[11]
content.text = '''
(1) 建議繼續(xù)堅(jiān)持運(yùn)動(dòng)和學(xué)習(xí),提升自己的健康水平和能力水平,以飽滿的狀態(tài)投入工作,不斷提高工作效率,創(chuàng)造出遠(yuǎn)大于回報(bào)的價(jià)值;
(2) 建議加強(qiáng)知識(shí)分享,教會(huì)別人,比自己動(dòng)手操作要難得多,但是,分享的過程會(huì)讓自己收獲更多,這是一件值得投入的事。
'''
# ***************6. 封底******************
# 添加幻燈片
slide_layout2 = prs.slide_layouts[3]
slide2 = prs.slides.add_slide(slide_layout2)
# 添加正文模塊標(biāo)題
title= slide2.placeholders[10]
title.text = '6. 感謝您的關(guān)注'
# 插入圖片對(duì)象,主圖
img_path='./pic/林驥.png'
picture_placeholder = slide2.placeholders[11]
placeholder_picture = picture_placeholder.insert_picture(img_path)
# 添加描述內(nèi)容
content= slide2.placeholders[12]
content.text = '用數(shù)據(jù)化解難題,讓分析更加有效。'
prs.save('2020年9月林驥的數(shù)據(jù)分析報(bào)告.pptx')
print("報(bào)告已生成,請(qǐng)打開PPT文件查看。")

評(píng)論
圖片
表情
