近日,阿执曾分享了关于如何使用Python进行Excel自动化操作的相关文章,得到了大家的积极反馈。所以今天我决定带大家进行一次实战演练,展示如何通过Python来自动生成数据报表。
通过这次操作,我们将从零开始,利用Python处理一系列数据,并最终生成一份符合需求的报表,进而提高工作效率。
在本次示范中,主要涉及到的几个Python库有pandas、xlwings以及matplotlib。它们将帮助我们处理数据、操作Excel文件并绘制图表。
为了让大家更直观地理解这个过程,接下来我们先通过一个动态GIF展示整个自动化操作的流程,所有的过程都由程序自动完成。
接下来,我们就通过一个具体的例子——水果和蔬菜销售数据报表,来进行详细的讲解。
原始数据介绍
我们手头有一份原始销售数据,包含了诸如水果蔬菜名称、销售日期、销售数量、单价、成本、收入、总成本以及总利润等字段。
我们导入相关的Python库,并使用pandas读取这份原始数据。
接下来,这份数据共有1000条记录,接下来我们将这些数据导入到Excel文件中。
使用xlwings创建Excel工作簿
我们利用xlwings库创建一个新的Excel工作簿,并在其中创建一个工作表,命名为“fruit_and_veg_sales”。然后将读取到的原始数据复制到这个表格中。
如果你是第一次接触xlwings库,下面我给出了一些参考文档,方便大家深入学习:
中文文档:xlwings中文教程
英文文档:xlwings官方文档
我个人推荐使用中文版文档,这样能更容易理解。如果你对Excel的VBA操作感兴趣,也可以参考微软官方的文档:
VBA官方文档:Excel VBA API
创建Dashboard可视化报表
数据导入之后,我们开始在工作簿中创建一个新的工作表,命名为“Dashboard”,用于展示分析结果。
我们的Excel工作簿已经包含了两个工作表:一个是包含原始销售数据的“fruit_and_veg_sales”,另一个是空白的“Dashboard”。接下来,我们将通过pandas对数据进行处理,并生成适合展示在Dashboard中的数据。
数据处理与表生成
在Dashboard工作表中,我们首先需要计算出两个主要的数据:产品的利润和产品的销售数量。为此,我们使用了pandas中的数据表功能。
通过表的操作,我们得到了两个表格:一个是显示各个产品利润的表格,另一个是各个产品销售数量的表格。这两个表格的数据如下:
接下来,我们将这些数据导入到Excel表格中,并对其进行格式化,方便后续的查看和分析。
按月汇总销售数据
为了更好地展示销售趋势,我们需要按月份对销售数据进行汇总。我们通过查询原始数据,发现销售日期被记录为字符串类型,这使得我们无法直接进行时间分组。于是我们使用pd.to_datetime()将日期列转换为时间格式,并根据转换后的日期进行按月分组。
最终,我们得到了每个月的销售情况,并将其汇总为表格。这些数据将会添加到Excel文件的Dashboard工作表中。
识别高收入日期
接着,我们从数据中筛选出收入最高的前8个日期,并将它们以表格的形式显示在Dashboard中。这样,我们便得到了四个数据源,分别是:产品利润表、销售数量表、每月销售情况表和收入最高的日期表。
格式设置与表格填充
现在,我们已经有了数据,接下来需要对表格进行格式设置。为了让报表更加美观,我们为表格添加了边框、颜色以及文字格式等。这一过程通过自定义的函数实现,可以批量为所有表格应用一致的样式。
最终,我们得到了一份整齐、清晰的表格,所有的数据一目了然。
添加可视化图表
除了数据表格,图表也是报表中不可或缺的一部分。我们使用matplotlib绘制了一个简单的图表,并在Excel文件中嵌入了一个Logo图片,进一步美化报表的外观。
在生成图表时,我们特别注意了中文显示的问题,确保图表中的中文字符能够正常显示,而不是显示为方框。
生成完整的销售报表
最终,我们成功生成了完整的水果蔬菜销售报表。所有的表格和图表都被整合在一个Excel文件中,既便于分析,也便于汇报。
适用环境与注意事项
需要特别注意的是,本示例代码是在Mac和Excel 2016环境下测试的。在Windows平台上,由于Excel的API调用方式(如pywin32或appscript)有所不同,可能会遇到一些小问题,尤其是在设置表格字体方面。对此,大家可以根据自己使用的环境进行调整。
对于有兴趣尝试的朋友们,这个项目无需写太多代码就能生成一份功能完善的Excel报表。只需要掌握一些基本的库和方法,就能轻松完成数据处理和报表生成。
希望这篇文章能够帮助大家更好地理解如何使用Python自动化生成数据报表,并在工作中提高效率!