Python办公自动化 生成房产销售的分析报告【2】

news2025/1/11 19:41:53

学好办公自动化,走遍天下都不怕!!

        办公三件套Excel、Word 和PPT。前面已经学习过如何处理excel数据以及批量自动生成word文档。

        今天主要是利用前面学习的python-pptx模块并且根据房屋销售信息生成分析报告。报告总共6页内容,包括:文本,自选图形,table表格,柱状图和饼状图。

1.导入模块和包

python-pptx没有安装的需要先安装:pip install python-pptx

import pptx
# 设置距离宽度
from pptx.util import Inches,Pt
# 添加图形
from pptx.enum.shapes import MSO_SHAPE
# 填充颜色
from pptx.dml.color import RGBColor
#导入写入图表用的包
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
# 设置图例会用到
from pptx.enum.chart import XL_LEGEND_POSITION

2.创建ppt幻灯片

# python根据消费者信息生成分析报告
ppts = pptx.Presentation()

幻灯片总共分为6张,首页、主要目录、消费榜单、消费偏好趋势、消费者用户画像饼状图以及尾页。

2.1 第一页

第一页主要是幻灯片的标题,内容比较少,标题以及副标题。

#第一页
slide1 = ppts.slides.add_slide(ppts.slide_layouts[0])
slide1.shapes.title.text = '房产销售消费者洞察报告'
slide1.shapes.placeholders[1].text='2024年第一季度'
2.2 第二页 

第二页是分析报告的目录。标题目录下新增文本框,每个目录新增一个段落,最终形成第二页内容。

# 第二页
slide2 = ppts.slides.add_slide(ppts.slide_layouts[1])
slide2.shapes.title.text='目录'
content = slide2.shapes.placeholders[1].text_frame
content.add_paragraph().text='房产销售第一度房屋消费榜单'
content.add_paragraph().text='业主消费偏好趋势'
content.add_paragraph().text='房屋消费者用户画像'
2.3 第三页 

第三页是一个table列表,是第一季度消费榜单。共四列11行数据。

# 第三页
slide3 = ppts.slides.add_slide(ppts.slide_layouts[1])
slide3.shapes.title.text = '房产销售第一度房屋消费榜单'
table = slide3.shapes.add_table(11,4,Inches(0),Inches(1.4),Inches(10),Inches(6)).table
# 写入内容
table.cell(0,0).text = '排名'
table.cell(0,1).text = '户型'
table.cell(0,2).text = '所属开发商'
table.cell(0,3).text = '一季度销售额'

data =[
    {'type':'一房一厅','base':'恒大房产','total':5000},
    {'type':'一房两厅','base':'万科房产','total':5000},
    {'type':'两房一厅','base':'恒大房产','total':5000},
    {'type':'两房两厅','base':'万科房产','total':5000},
    {'type':'两房三厅','base':'恒大房产','total':5000},
    {'type':'三房一厅','base':'万科房产','total':5000},
    {'type':'三房两厅','base':'恒大房产','total':5000},
    {'type':'四房两厅','base':'万科房产','total':5000},
    {'type':'联排别墅','base':'恒大房产','total':5000},
    {'type':'独栋别墅','base':'万科房产','total':5000}
       ]
for i in range(11):
    if i > 0:
        table.cell(i,0).text = str(i)
        table.cell(i,1).text = data[i-1]['type']
        table.cell(i,2).text = data[i-1]['base']
        table.cell(i,3).text = str(data[i-1]['total'])

幻灯片添加table,并给table的单元格赋值,第一行表头依次赋值 排名、户型、所属开发商、销售额四列。大部分数据来自于data对象数组遍历后赋值给每个单元格。 

2.4 第四页 

第四页是消费者偏好趋势,主要是幻灯片中添加自选图形,设置显示位置以及填充颜色和段落文本以及文本字体的大小调整。

# 第四页
slide4 = ppts.slides.add_slide(ppts.slide_layouts[1])
slide4.shapes.title.text = '房产用户消费偏好趋势'
shape1 = slide4.shapes.add_shape(MSO_SHAPE.RECTANGLE,Inches(1),Inches(1.5),Inches(3),Inches(2.5))


fill = shape1.fill
fill.solid()
fill.fore_color.rgb = RGBColor(51,102,255)
shape1.text_frame.add_paragraph().text='价位偏好:'
p1 = shape1.text_frame.add_paragraph()
p1.text = "经济入门型"
p1.font.size = Pt(35)

shape2 = slide4.shapes.add_shape(MSO_SHAPE.RECTANGLE,Inches(4),Inches(1.5),Inches(5),Inches(2.5))

fill = shape2.fill
fill.solid()
fill.fore_color.rgb = RGBColor(0,184,245)
shape2.text_frame.add_paragraph().text='开发商偏好:'
p2 = shape2.text_frame.add_paragraph()
p2.text = "国产自主品牌"
p2.font.size = Pt(35)

shape3 = slide4.shapes.add_shape(MSO_SHAPE.RECTANGLE,Inches(1),Inches(4),Inches(8),Inches(2.5))
fill = shape3.fill
fill.solid()
fill.fore_color.rgb = RGBColor(112,219,255)
shape3.text_frame.add_paragraph().text='房型偏好:'
p3 = shape3.text_frame.add_paragraph()
p3.text = "中等户型仍为主力"
p3.font.size = Pt(35)
2.5 第五页 

第五页是各年龄段的平均购房花费和性别分布,分别用柱状图和饼图展示,并且给饼图设置了图例以及图例显示位置。

#第五页
slide5 = ppts.slides.add_slide(ppts.slide_layouts[1])
slide5.shapes.title.text = '房屋消费者用户画像'

chart_data = CategoryChartData()
chart_data.categories = ['70后','80后','90后'] # x轴的数据
chart_data.add_series('各年龄段平均购房花费',(40,45,25))
chart0 = slide5.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED,Inches(1),Inches(2.5),Inches(4),Inches(3),chart_data).chart 

chart0.has_legend = True
chart0.legend.position = XL_LEGEND_POSITION.RIGHT

chart_data1 = CategoryChartData()
chart_data1.categories = ['男','女'] # x轴的数据
chart_data1.add_series('性别分布',(65,35))
chart = slide5.shapes.add_chart(XL_CHART_TYPE.PIE,Inches(6),Inches(2.5),Inches(3),Inches(3),chart_data1).chart

chart.has_title = True
chart.chart_title.text_frame.text='性别分布图表'
chart.has_legend = True
chart.legend.position = XL_LEGEND_POSITION.RIGHT
2.6 第六页 

第六页比较简单,是一张致谢结尾的幻灯片。最后保存文件对象。

# 第六页
slide6 = ppts.slides.add_slide(ppts.slide_layouts[0])
slide6.shapes.title.text = '谢谢'

# 保存
ppts.save('car_case.pptx')

3.运行文件生成分析报告

编辑好所有的幻灯片文件,并且保存文件,我们来控制台执行文件执行: python pptcase.py 

可以看到项目文件夹中新增了一个car_case.pptx文件。就是我们刚刚保存的文件。

打开之后可以看到我们用python-pptx模块并且根据我们的需求成功生成了分析报告。

Python办公自动化 python-pptx模块的安装与使用【1】-CSDN博客

更多的python知识请参考: 

python运行环境的搭建 | python爬虫获取数据 | python自动化之word篇 | python处理excel数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2064946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++进阶之智能指针

一、为什么需要智能指针 下面我们先分析一下下面这段程序有没有什么内存方面的问题?提示一下:注意分析MergeSort 函数中的问题。 int div() {int a, b;cin >> a >> b;if (b 0)throw invalid_argument("除0错误");return a / b; }…

机器人学——逆向运动学(机械臂)

正/逆运动学对比 求解 求解目标 Reachable workspace 与 Dexterous workspace Subspace 解的数目 多重解 解的选择 求解方法 栗子一 x,y,fai已知,求解theta(1,2,3)的具体数值 几何法 余弦定理定义:对于任意三角形ABC,设其三个内角分别为…

Behind the Code:Ewald Hess 带你一起深度解读链上能源与外交

2024 年 9 月 14 日,《Behind the Code: Web3 Thinkers》第二季第九集上线。在本集中,Ewald Hess 深入剖析了区块链技术在推动能源市场变革中的关键作用。长期以来,传统能源行业因垄断和低效饱受批评,但随着 Bitcoin 和 Ethereum …

企业入驻西安国际数字媒体产业园的十大好处

在当今数字化飞速发展的时代,企业的发展需要依托创新的平台和资源的整合。西安国际数字影像产业园,作为数字产业的引领者,为入驻企业提供了众多独特的优势和机遇。 好处一:产业集聚效应。西安国际数字影像产业园汇聚了众多数字媒体…

字符函数内存函数———C语言

字符分类函数 头文件: ctype.h 函数功能iscntrl判断字符是否为控制字符isspace判断字符是否为空白字符(空格,换页、换行、回车、制表符或垂直制表符)isdigit判断字符是否为十进制数字isxdigit判断字符是否为十六进制数字(0-9)(a…

二分+划分型dp,CF 360B - Levko and Array

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 B - Levko and Array 二、解题报告 1、思路分析 最小化最大值&#xff0…

射频前端加LNA放大具体应用方案介绍

1.1编写目的 接收机为了适应在一些应用场合要求,需要增大接收强度,必要时在前段增加一个低噪声放大器LNA以增大链路增益,本文编写一个最简单的低成本的LNA,记录是想给大家一个引导思路或借鉴。 1.2背景 以micrf220这款芯片在…

A4-80内六角螺栓产品特性及应用

A4-80内六角螺栓是一种常用的紧固件,广泛应用于需要高强度和耐腐蚀性能的各种场合。下面我们就来科普一下A4-80内六角螺栓的产品特性和应用场景。 产品特性 材质 A4-80内六角螺栓通常采用A4等级的不锈钢材料制成,这意味着它们具有优异的耐腐蚀性能&#…

【R语言】基于多模型的变量重要性图 (Variable Importance Plots)

变量重要性图 Variable Importance Plots 1. 写在前面2.1数据导入2.2 模型训练2.3 变量重要性2.4 变量重要性图2.5 模型模拟验证3.基于caret包计算变量重要性 1. 写在前面 好久没有更新博客了,正好最近在帮老师做一个项目,里面涉及到了不同环境变量的重要…

基于鸿蒙Next模拟扫图识物的一个过程

一、功能介绍(基础) 基于鸿蒙Next模拟扫图识物的一个过程,扫描到图片,提示出相关的图片内容,是一个什么东西。 二、使用场景(大类) 支付、社交、信息获取、在线调查、教育学习等等。 三、实现…

Vue指令:v-cloak、v-once、v-pre 指令

1、v-cloak 指令 v-cloak 指令可以隐藏未编译的 Mustache 标签直到实例准备完毕&#xff0c;否则在渲染页面时&#xff0c;有可能用户会先看到 Mustache 标签&#xff0c;然后看到编译后的数据。 &#xff08;1&#xff09;设置CSS样式 display:none <style type"te…

别再盲目推广了!用Xinstall,效果翻倍

在移动互联网时代&#xff0c;App的运营推广成为了开发者们最为关注的话题之一。然而&#xff0c;随着市场竞争的加剧&#xff0c;推广难度也越来越大。这时候&#xff0c;一款名为Xinstall的品牌走进了我们的视线&#xff0c;它以其独特的技术和解决方案&#xff0c;为App推广…

【系统架构设计】软件架构设计(2)

【系统架构设计】软件架构设计&#xff08;1&#xff09; 软件架构概述架构需求与软件质量属性软件架构风格层次系统架构风格面向服务的架构SOA概述微服务微服务和SOA差异 软件架构概述 架构需求与软件质量属性 软件架构风格 层次系统架构风格 面向服务的架构 SOA概述 面…

【生日视频制作】教师节中秋节国庆节直升飞机AE模板修改文字软件生成器教程特效素材【AE模板】

飞机生日视频制作教程AE模板改文字特效广软件告生成器玩法素材 怎么如何做的【生日视频制作】教师节中秋节国庆节直升飞机AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装AE软件 下载AE模板 把AE模板导入AE软件 修改图片或文字 渲染出视频…

一起学Java(3)-Java项目构建工具Gradle和Maven场景定位和优缺点对比

在第一步创建的项目&#xff08;java-all-in-one&#xff09;项目里&#xff0c;我们提到了使用Gradle作为项目构建工具。看到这里&#xff0c;不知道你是否有疑惑&#xff0c;什么是项目构建工具。Java项目常用构建工具有哪些&#xff1f;都有什么特点&#xff1f; 带着疑惑&…

网络安全——基础知识记忆梳理

1. SQL注入攻击 SQL注入攻击是一种常见的网络安全威胁&#xff0c;它利用Web应用程序中对用户输入的数据的不正确处理&#xff0c;攻击者可以在SQL查询中注入恶意代码&#xff0c;从而执行非授权的数据库操作。这种攻击方式可以导致数据泄漏、数据篡改、绕过认证等多种安全问题…

【java计算机毕设】足浴城消费系统小程序MySQL ssm vue uniapp maven项目设计源代码 编程语言 小组课后作业 寒暑假作业

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】足浴城消费系统小程序MySQL ssm vue uniapp maven项目设计源代码 编程语言 小组课后作业 寒暑假作业 2项目介绍 系统功能&#xff1a; 足浴城消费系统小程序包括管理员、用户、商家三种角色。 管理员功能&…

Linux基础I/O之文件缓冲区

一、缓冲区的基本概念 缓冲区这个概念&#xff0c;我相信大家或多或少的有听到过&#xff0c;那么其到底是个什么东西呢&#xff1f; 简单地理解一下&#xff0c;其可以被看做一部分的内存&#xff08;可以认为是malloc来的&#xff09;。 那为什么要有缓冲区这个东西呢&#x…

C语言典型例题48

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题3.8 有4个圆塔&#xff0c;圆形分别为&#xff08;2,2&#xff09;、&#xff08;-2,2&#xff09;、&#xff08;-2&#xff0c;-2&#xff09;、&#xff08;2&#xff0c;-2&#xff09;&#xff0c;圆半径为…

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架&#xff0c;所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class"container"></div> </template><script type"text/ecmascript-6&q…