目录

  • 1. 完成xlsx数据读取
  • 2.对数据做一些处理
  • 3.生成图表
  • 4.创建word文件
  • 5.将分析结果保存入word文件中

本文主要是讲如何根据简单的xlsx数据,生成word数据报告,首先需要先读取与分析xlsx中的数据,通过排序等等方式固定好分析哪些方面,然后来编写对应的代码,对应的示例xlsx文件如下:

1. 完成xlsx数据读取

我们在读取xlsx文件时使用pandas读取与操作,代码如下:

import pandas as pd
# 读取excel文件
df = pd.read_excel("datas.xlsx",sheet_name='Sheet1',engine="openpyxl")
df.columns = ["预约单号","用户名","支付时间","支付金额"];
print(df)

打印结果如下:


2.对数据做一些处理

求支付金额的总平均值或者总订单数量,示例代码如下:

orderCount = df["预约单号"].count()
orderPaySum = df["支付金额"].sum()
orderPayMean = df["支付金额"].mean()
print("总订单数{0},支付总额{1}元,支付每单平均值为{2:.2f}元".format(orderCount,orderPaySum,orderPayMean))

输出结果如下:

总订单数74,支付总额10260元,支付每单平均值为138.65元

将数据按照一个支付时间进行分组,并对每日的支付总额进行求和,示例代码如下:
根据支付时间分组并求和,并重新更改了head

df2 = df.groupby(by='支付时间')["支付金额"].sum().reset_index()
df2.columns = ["paydate","total"]
print(df2)

打印结果截图如下:

将数据按照一个支付时间进行分组,并对每日的支付金额求平均值,示例代码如下:

df2 = df.groupby(by='支付时间')["支付金额"].mean().reset_index()
df2.columns = ["paydate","mean"]
print(df2)

打印结果截图如下:

统计每日的订单数量,示例如下:

df2 = df.groupby(by='支付时间')["预约单号"].count().reset_index()
df2.columns = ["paydate","total"]
print(df2)

打印结果表如下:


3.生成图表

根据上方生成的数据生成按照日期进行分组的柱状图,下方定义了一个生成柱状图的方法,使用matplotlib.pyplot

def showPlot(df,xkey,ykey,title,xlabel,ylabel):'''@param df DataFrame数据@param xkey 横向轴数据对应的列名@param ykey 纵向轴数据对应的列名@param title 柱状图图表标题@param xlabel x轴名称@param ylabel y轴名称'''pl.bar(df[xkey],df2[ykey],color="orange")pl.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签pl.rcParams['axes.unicode_minus']=False #用来正常显示负号pl.title(title,fontsize=16)pl.xlabel(xlabel)pl.ylabel(ylabel)pl.xticks(df.paydate,rotation="30")pl.tight_layout()pl.show()

总数和平均值生成柱状图截图如下:


4.创建word文件

如何创建一个docx文件,这个将要用到python-docx中的document,安装(默认pip3)

pip install python-docx

示例代码如下:

from docx import Document
from docx.shared import Inches
document = Document()
# 创建一个段落
document.add_paragraph('这是一个段落')
# 添加标题
document.add_heading('这是标题',level=1)
# 添加页面分割符
document.add_page_break()
# 添加表格
table = document.add_table(rows=6,cols=6)
cell = table.cell(0,5)
cell.text = "0,5"
# 添加图片
document.add_picture('data.jpg',width=Inches(1.25))
#保存docx文件
document.save("new.docx")
5.将分析结果保存入word文件中

将生成的图表保存为图片文件,将原有的方法中pl.show修改如下:

pl.savefig(savepath)
# 如果不加下面这一行时多次调用svaefig会导致图片数据重叠
pl.close()

开始创建word文件代码,具体代码如下:

from docx import Document
from docx.shared import Inches
from docx.enum.text import WD_PARAM_ALIGNMENT
#此处省略之前的统计保存图片文件代码
document = Document()
# 添加标题
title = document.add_heading('简单的订单数据分析结果如下:',level=1)
title.alignment = WD_PARAM_ALIGNMENT.CENTER
# 创建一个段落
document.add_paragraph("总订单数{0},支付总额{1}元,支付每单平均值为{2:.2f}元".format(orderCount,orderPaySum,orderPayMean))
# 添加图片
document.add_picture('datas-sum.jpg',width=Inches(5))
document.add_picture('datas-mean.jpg',width=Inches(5))
document.add_picture('datas-count.jpg',width=Inches(5))
#保存docx文件
document.save("new.docx")

显示效果如下:

python3根据excel表数据自动生成word格式数据报告相关推荐

  1. 电脑表格日期怎么修改原有日期_如何在Excel表中自动生成记录数据的日期和时间...

    几天前有人问我: 在Excel表格中输入信息时,如何在日期单元格中自动生成日期和时间? 输入表格时,我们经常需要输入时间,而不是填写存储时间,为了减少输入工作量,您可以将日期设置为自动生成. 例如,当 ...

  2. python将Excel数据自动生成Word报告【Pyhon-docx\openpyxl】

    我写在了知乎,图片没有搬运过来.链接:https://zhuanlan.zhihu.com/p/371767402 需求:日常工作中,需要对Excel表格的数据进行筛选计算整理,然后将数据做成Word ...

  3. 用什么软件能从excel数据自动生成word版的环境实验室检测报告

    您可以使用Microsoft Word的邮件合并功能来自动生成基于Excel数据的环境实验室检测报告.具体步骤如下: 在Excel中准备好您的数据,确保每一列都有一个相应的列标题. 在Word中,创建 ...

  4. excel平均值公式_推荐一款多人同时编辑Excel表,自动生成汇总报表的软件给大家...

    企业管理人员经常遇到这种情况,就是需要大家填报Excel表格的数据,便于统一汇总数据报表. 推荐的这个免费软件叫优企Excel系统,可以非常轻松的做到多人同时在表格中填报数据,和Excel的操作一样, ...

  5. Excel用vba自动生成word

    Sub GenDocfromExcel()'excel控制word,生成新文件,插入图片和文件名,保存 'office 2003, VBA工具/引用中要勾选Microsoft Word 11.0 Ob ...

  6. 【Power Automate】如何自动生成Word与PDF文件[上]

    上半年已经悄悄溜走,因为疫情,大家似乎也很习惯于在家办公.作为业务人员,如何汇报自己的工作,让自己更多地学习和掌握数字化办公技巧至关重要.那么今天我们就来看一下在不使用代码的情况下,如何通过Power ...

  7. labview自动保存报表_基于LabVIEW的Excel报表的自动生成功能

    所示. 图 1 Excel Specific 的子模板 所有的用于生成 Excel 格式的 VI 集都在 Excel Specific 模板中.此时,用户就可以在 LabVIEW 中直接使用这些简易 ...

  8. Qt5生成Word格式报告

    引言 一使用ActiveQt模块 二子线程中使用 三准备word模板 四代码 插入书签位置 批量插入 插入表格 方法一利用Range对象定位后插入表格 方法二利用bookmark定位后插入表格 五其他 ...

  9. Java使用FreeMarker自动生成Word文档(带图片和表单)

    Java使用FreeMarker自动生成Word文档(带图片和表单) 1 背景 2 目标效果 3 创建Word模板 3.1 创建模板文档 3.2 转换模板文档 3.3 处理模板文档中的占位符 3.4 ...

最新文章

  1. 人工智能创业指南:AI 产品未来的发展模式及策略
  2. 《裂变》作者爆料:欺世盗名者绝非唐骏一人
  3. ORACLE设置用户密码不过期
  4. 两万字深度介绍分布式系统原理,一文入魂
  5. Sql Server通用分页存储过程
  6. 如何写出安全的API接口
  7. iOS项目中常见定时器
  8. java微信刷卡支付demo_微信刷卡支付例子
  9. (转)是时候说说Pivotal这个富二代了!
  10. 数据结构严蔚敏算法设计习题解答(逐渐更新)(更新于2020.11.20)
  11. DNS和VIP的区别
  12. 【WebGIS毕业设计】(一)前言、开题与参考文献
  13. 聚焦技术实战!MDCC 2016 移动开发者大会盛大开幕
  14. 校园网ensp模拟搭建
  15. 留学生Essay写作没思路的解决方案
  16. 视频去水印 java_用java给视频水印LOGO
  17. 直播知识点实录|百度大脑EasyDL产业应用系列 安全生产专场
  18. 仿微信朋友圈动态列表
  19. Android热更新十:自己写一个Android热修复
  20. 纽约大学计算机与科学,纽约大学计算机科学专业好吗?

热门文章

  1. WPF导出发布安装包,无法验证发行者解决办法
  2. 【手游】梦幻西游手游 美术资源加密分析
  3. (详细)《美国节日》:某月的第几个星期几
  4. WDC2106 iOS10新特性及开发者要注意什么
  5. java 编写线程公共类_Java实现线程间通信方式
  6. 计算机理论和地理的关系,计算机辅助地理教学的理论和实践
  7. ios 各种动画机制
  8. [poj1797] Heavy Transportation
  9. 类型BYTE,WORD与DWORD
  10. vue 移动端跳页搜索自动获取焦点