• Python实现自动生成日报数据,又掌握一个有用的技能


    前言

    之前发了篇写周报的没什么人看

    那今天就来试试 用Python实现 自动生成日报数据

    这个对做销售的伙伴用处挺大,更方便总结那些七七八八的数据

    请添加图片描述

    需求详解

    拿同事去年的销售数据来练练手

    他们平时的销售数据是记录在Excel上,汇总后会按照部门进行统计。

    请添加图片描述

    大概是要做成这样的

    请添加图片描述
    需求比较简单,只需要从Excel表格中读取每日的数据,使用Python将其处理后,再依次写入Word文档中,即可实现批量生成日报。

    数据处理

    在进行数据处理之前,要先了解最终需要哪些数据。如下图所示,在目标日报Word中主要分为两类:红色标记的数值主要是由当日的数据、或者由它们计算后得到的数据构成;绿色标记的表格则更简单了,就是近七日的数据(销售数量、销售金额、销售目标、完成度)。

    请添加图片描述

    源码.素材.资料.点击领取即可

    首先我们导入Pandas模块进行数据处理

    import pandas as pd
    df = pd.read_excel("日报数据.xlsx")
    df
    
    • 1
    • 2
    • 3

    输出结果

    请添加图片描述

    导入数据后,接着就可以按照我们的需求,来进行数据运算了。数据运算主要分为两种,一种是利用加 +、减 -、乘 *、除 / 进行数据运算,另一种是利用统计方法进行数据运算。

    在交互式环境中输入如下命令:

    df["日期"] = df["日期"].apply(lambda x:x.strftime("%Y-%m-%d"))
    df["当日完成度"] = (df["销售金额"]/df["销售目标"]*100).round(1)
    df["累计销售金额"] = df["销售金额"].cumsum()
    df["当年完成度"] = (df["累计销售金额"]/2200000*100).round(1)
    df["累计销售金额"] = (df["累计销售金额"]/10000).round(2)
    df
    python学习交流Q群:309488165 ### 源码领取
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出结果:

    请添加图片描述
    可以看到,最终结果截图中红色标记的数据内容已经全部被计算出来。而绿色标记的表格则更加简单了,使用Pandas模块中的数据选取即可。

    在交互式环境中输入如下命令:

    num = 10
    df.iloc[num-7:num, :5]
    
    • 1
    • 2

    输出结果:

    请添加图片描述

    通过这种方法就可以轻松得到某一日期的过去7日内的日报数据合集。

    自动生成日报

    源码.素材.资料.点击领取即可

    使用Python自动化操作Word通常会使用python-docx模块,而批量生成Word文档一般有两种方法:使用add_ paragraph()、add_table()等方法给Word文档添加各种内容。另一种就是我们这次要用的,即按照位置替换原Word文档中的文字和表格数据等。

    在交互式环境中输入如下命令:

    python学习交流Q群:309488165 ### 源码领取
    for index, rows in df.iterrows():
        if index > 30:
            doc.paragraphs[0].runs[1].text = rows[0]
            doc.paragraphs[4].runs[4].text = rows[0]
            doc.paragraphs[4].runs[6].text = str(rows[1])
            doc.paragraphs[4].runs[8].text = str(rows[2])
            doc.paragraphs[5].runs[1].text = str(rows[3])
            doc.paragraphs[5].runs[3].text = str(rows[4])
            doc.paragraphs[9].runs[2].text = str(rows[5])
            doc.paragraphs[9].runs[7].text = str(rows[6])
    
            table = doc.tables[0]
            data_table = df.iloc[index-6:index+1,:5]    
            for i in range(7):
                for j in range(5):
                    table.cell(i+1,j).text = str(df.iloc[i,j])
            
            doc.save(f"销售日报-{rows[0]}.docx")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    执行代码,输出结果:

    请添加图片描述

    如上图所示,120份有记录的销售日报就写好啦,Python自动化办公就是怎么神奇。

    请添加图片描述

    完整代码获取方式在文末名片

    因为语法简单、容易上手,Python 被称为“最适合初学者学习”的编程语言。而对于工作中各种重复性的电脑工作,都可以考虑用Python来转变为自动化程序。

    请添加图片描述

    好了,今天的分享到这里就结束了

    对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦

    觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

    请添加图片描述

  • 相关阅读:
    Java 异常处理
    Css的flex布局(弹性盒子)详解
    R语言ggplot2可视化:使用ggplot2可视化散点图、使用scale_size函数配置数据点的大小的(size)度量调整的范围
    Linux环境下pip报错No space left on device
    黑马 小兔鲜儿 uniapp 小程序开发- 推荐模块- day03
    (个人笔记)EDEM耦合Recurdyn流程
    【培训】国产CAE软件(流体、结构仿真、优化、数据建模)免费实操培训课程报名通知
    半年总结 -要有松弛感的慢生活
    熟悉Java内存模型JMM
    递归拼接树形结构
  • 原文地址:https://blog.csdn.net/aliYz/article/details/127736893