从Excel中解救你!如何用Python实现报表自动化
全文共2391字,预计学习时长14分钟
图源:morioh
工作中,无穷无尽的表格有时会令人抓狂。Excel无处不在,即便有着像Python这样的强大工具任你使用,你也难以从中逃脱。
也许你的老板和同事仍然需要这种简单的方法来访问重要数据。但没关系!那并不意味着你不能通过使用Python来简化Excel工作。
全程无需使用Excel,逃离报表魔爪!
用Python将Excel报表自动化
你还在天天做Excel报表吗?而且还是为不同的客户做着四五次同样的报表吗?不如让Python代劳吧!
通过使用笔者在数据透视表教程中的数据( 数据格式将使你期望从公司数据库中获得的内容与客户销售数据相匹配,与你期望从公司数据库中获得的数据相匹配。它按区域细分这些数据,并且创建两个带有格式和图表的汇总表。无需使用Excel! 最终的数据流—一个工作簿转化为四个格式化报告 | 图源:Nik Piepenbreier 加载库 使用Pandas和Openpyxl。笔者的“用Python自动化这三项(无聊!!!)Excel任务”( 你使用如下两个Librariy: 1. Pandas负责转化数据,并创建初始Excel文件 2. Openpyxl将工作薄格式化,并插入图表 加载数据 加载数据,并概览正在处理的内容。正如笔者所提到的,这些数据与读者从公司数据库系统获得的数据相似。 在这里,使用Pandas读取Excel文件,并读取Date/日期列的日期。 创建数据透视表 接着我们要创建最终报告中所需要的汇总表。这里将创建一个数据透视表以作为例子,其中仅使用东部地区进行代码的实验。 创建第一个Excel文件 有了数据透视表后,将其导入到一个Excel文件中,我们将用pandas来导入: 这一步是在做什么: · 创建一个文件路径变量,以确定要将文件存储在何处, · 使用ExcelWriter保存文件 · 将两个透视表保存到单独的工作表中,从第3行开始(稍后从中保留以用于页眉) 使报表更漂亮 Pandas有助于将数据导入到Excel中。既然数据已经导入Excel,不妨将其美化一下,来添加一些可视化效果。 在Section 5中,将工作簿和工作表加载到Openpyxl可以处理的单独对象中。 而Section 6中操作更多: · 在表一的A1和A2单元格中添加标题和副标题。 · 更改“quarters”列的标题,使其更能反映数据。 · 对标题和副标题应用样式。 · 将金融领域的单元格转换为货币。这需要对每单个单元格进行单独处理。因此使用了for循环。 在Section 7中,添加了条形图: · 创建一个条形图对象,并识别存储数据和类别的字段。 · 随后将数据和类别应用于对象。 · 最后,添加描述性标题和样式。使用许多不同的样式都试试! 这就是工作簿现在的样子: 所得工作簿之一 | 图源: Nik Piepenbreier 对多个工作簿执行工作流自动化 虽然已经很方便了,但是仅在一个区域执行这样的操作只能节约一点点的时间。我们可使用for循环,对所有的区域执行此操作。 在Section 8中,创建了一个列表,其中包含了想要覆盖的不同区域的所有唯一值。 在Section 9中,在for循环中重复先前的代码: · 创建一个新变量,该变量用于保存文件所在文件夹的路径 · 接下来,使用f-strings将区域名插入到脚本中,使得脚本对每个区域都是动态的。 图源:unsplash Python的好处在于,它可使重复的任务具有可伸缩性。 想象一下,如果你每天都会收到这份文件,并且每天都要创建这些工作簿。这种方法能帮你节省多少时间!#Section 1 - Loading our Libraries
#Section 2 - Loading our Data
#Section 3 - Testing Pivot Tables
#Section 04 - Creating and Excel Workbook
#Section 05 - Loading the Workbook
#Section 08 - Getting Region Names