没有转义的Excel!

Excel无处不在,即使我们使用了Python之类强大的辅助工具,依然无法摆脱Excel。

因为你的老板和同事仍然需要方便的方法来访问重要数据。

但是,这并不意味着你不能通过使用Python简化使用Excel的工作,而这整个过程都不需要你触碰Excel!

使用Python自动化Excel报表

你还在每天做着没完没了的Excel报表吗?你还在为不同的客户做着相同的事情吗?

让Python帮你!

我们来实现Excel报表的自动化

让我们快速看一下我们将要自动化的东西!我们将使用以下链接中Pandas数据透视表中的数据:

https://towardsdatascience.com/a-step-by-step-guide-to-pandas-pivot-tables-e0641d0c6c70

数据格式需要与客户公司数据库中获得的数据格式相匹配。

我们按区域细分该数据,并创建两个汇总表,包括格式和图表,这些动作都不需要打开Excel!

数据可视化最终形式:从一个工作表到四个可视化报表

加载数据库

在这里,我们将使用Pandas和Openpyxl。如果你不知道Openpyxl,建议先找官方文档进行学习。我们将使用Python自动化3个Excel任务!

# 第1部分-加载我们的库import pandas as pdfrom openpyxl import load_workbookfrom openpyxl.styles import Fontfrom openpyxl.chart import BarChart, Reference

我们将使用两个库:Pandas负责转换我们的数据并创建最初的Excel文件Openpyxl格式化我们的工作表并插入图表

加载数据

让我们加载数据并快速查看我们正在使用的数据!

正如我所提到的,数据的含义类似于你从公司数据库系统中获得的数据。#第2部分-加载我们的数据df = pd.read_excel('https://github.com/datagy/pivot_table_pandas/raw/master/sample_pivot.xlsx', parse_dates=['Date'])print(df.head())# Date Region Type Units Sales#0 2020-07-11 East Children's Clothing 18.0 306#1 2020-09-23 North Children's Clothing 14.0 448#2 2020-04-02 South Women's Clothing 17.0 425#3 2020-02-28 East Children's Clothing 26.0 832#4 2020-03-19 West Women's Clothing 3.0 33

在这里,我们使用pandas读取一个Excel文件,将日期列解析为日期。

创建数据透视表

让我们创建最终报告中需要的汇总表。

# 第3部分-测试数据透视表filtered = df[df['Region'] == 'East']quarterly_sales = pd.pivot_table(filtered, index = filtered['Date'].dt.quarter, columns = 'Type', values = 'Sales', aggfunc='sum')print('Quarterly Sales Pivot Table:')print(quarterly_sales.head())#季度销售数据透视表:#Type Children's Clothing Men's Clothing Women's Clothing#Date #1 12274 13293 16729#2 5496 17817 22384#3 14463 9622 15065#4 13616 10953 16051

创建第一个Excel文件

有了透视表,现在我们将其加载到一个Excel文件中。

我们将使用pandas加载该Excel文俊:# 第04部分-创建和Excel工作簿file_path = #Path to where you want your file savedquarterly_sales.to_excel(file_path, sheet_name = 'Quarterly Sales', startrow=3)

让我们快速了解一下我们在做什么:创建一个文件路径变量来标识我们要将文件存储在何处使用ExcelWriter保存文件将两个数据透视表都保存到单独的工作表中,从第3行开始(稍后从头开始使用)

让我们的报表更漂亮

Pandas有助于将数据转换为Excel。接下来,让我们把表格再美化一下,并添加一些可视化效果。

# 第05部分-加载工作簿wb = load_workbook(file_path)sheet1 = wb['Quarterly Sales']# 第06部分-格式化第一页sheet1['A1'] = 'Quarterly Sales'sheet1['A2'] = 'datagy.io'sheet1['A4'] = 'Quarter'sheet1['A1'].style = 'Title'sheet1['A2'].style = 'Headline 2'for i in range(5, 9): sheet1[f'B{i}'].style='Currency' sheet1[f'C{i}'].style='Currency' sheet1[f'D{i}'].style='Currency'# 第07部分-添加条形图bar_chart = BarChart()data = Reference(sheet1, min_col=2, max_col=4, min_row=4, max_row=8)categories = Reference(sheet1, min_col=1, max_col=1, min_row=5, max_row=8)bar_chart.add_data(data, titles_from_data=True)bar_chart.set_categories(categories)sheet1.add_chart(bar_chart, 'F4')bar_chart.title = 'Sales by Type'bar_chart.style = 3wb.save(filename = file_path)

这段代码里包含了很多内容,下面来给大家详细讲解!

在第5部分中,我们将工作簿和工作表加载到Openpyxl可以处理的单独对象中。

第6部分还有更多内容:在单元格A1和A2中为sheet1添加标题和副标题。更改了四分之一列的标题,以更好地反映数据。将样式应用于标题和副标题。将金融领域的单元格更改为货币。 这需要一次应用于一个单元, 这就是为什么我们使用for循环的原因。

在第7部分中,我们添加了条形图:创建一个BarChart对象,并标识存储数据和类别的字段。然后将数据和类别应用于对象。最后,我们添加一个描述性的标题和样式。Openpyxl使用多种样式-尝试所有样式!

这是我们的工作表现在的样子:

我们的工作成果之一

为多个表格自动化此工作流程

只处理表格中的一部分不是我们高效工作的宗旨,让我们对所有带有for循环的区域执行此操作。# 第08部分-获取地区名称regions = list(df['Region'].unique())# 第09部分-所有区域的循环folder_path = #插入要保存报表的文件夹的路径for region in regions: filtered = df[df['Region'] == f'{region}'] quarterly_sales = pd.pivot_table(filtered, index = filtered['Date'].dt.quarter, columns = 'Type', values = 'Sales', aggfunc='sum') file_path = f'{path to your folder}{region}.xlsx' quarterly_sales.to_excel(file_path, sheet_name = 'Quarterly Sales', startrow=3) wb = load_workbook(file_path) sheet1 = wb['Quarterly Sales'] sheet1['A1'] = 'Quarterly Sales' sheet1['A2'] = 'datagy.io' sheet1['A4'] = 'Quarter' sheet1['A1'].style = 'Title' sheet1['A2'].style = 'Headline 2' for i in range(5, 10): sheet1[f'B{i}'].style='Currency' sheet1[f'C{i}'].style='Currency' sheet1[f'D{i}'].style='Currency' bar_chart = BarChart() data = Reference(sheet1, min_col=2, max_col=4, min_row=4, max_row=8) categories = Reference(sheet1, min_col=1, max_col=1, min_row=5, max_row=8) bar_chart.add_data(data, titles_from_data=True) bar_chart.set_categories(categories) sheet1.add_chart(bar_chart, 'F4') bar_chart.title = 'Sales by Type' bar_chart.style = 3

我们来仔细分析这一部分的代码:

在第8部分中,我们创建一个列表,其中包含我们要覆盖的不同区域的所有唯一值。

在第9部分中,我们在for循环中重复前面的代码:创建了一个新变量,该变量保存要保存文件的文件夹的路径。使用f字符串将区域名插入到脚本中,使其对每个区域都是动态的。

接下来是什么?

Python的好处在于可重复执行任务的可伸缩性。

你可以想象一下,利用以上步骤,快速创建报表, 每天能节省多少时间?

结论

在这个简短的教程中我们学到了很多东西! 我们将表格转换为一组数据透视表,将它们导出到单独的工作簿中,然后将格式和图形应用于每个工作表格!

工作表格excel用python_Python自动化处理Excel报表,工作更轻松相关推荐

  1. python自动化表格处理软件_Python自动化处理Excel报表,我的工作更轻松了!

    没有转义的Excel! Excel无处不在,即使我们使用了Python之类强大的辅助工具,依然无法摆脱Excel. 因为你的老板和同事仍然需要方便的方法来访问重要数据. 但是,这并不意味着你不能通过使 ...

  2. 怎么用python处理excel文件-Python自动化如何处理excel文件数据

    原标题:Python自动化如何处理excel文件数据 在python自动化中,经常会遇到对数据文件的操作,比如添加多名员工,但是直接将员工数据写在python文件中,不但工作量大,要是以后再次遇到类似 ...

  3. python excelwriter保存路径_Python自动化处理Excel报表,我的工作更轻松了!

    没有转义的Excel! Excel无处不在,即使我们使用了Python之类强大的辅助工具,依然无法摆脱Excel.因为你的老板和同事仍然需要方便的方法来访问重要数据.但是,这并不意味着你不能通过使用P ...

  4. 导出excel 数据取一次合理还是分页取合理_一张报表模板替代数百张Excel表格,用它让报表工作更轻松...

    要问现代职场人,必备工作技能是什么?Excel技能当仁不让,数据分析.总结汇报.信息传达,统统离不开.但是在日常工作中,Excel也有着它的局限性,以月度数据汇报为例,每月都需重新做表统计,其实内容还 ...

  5. 自动化办公:2、Python自动化之Excel读取表格+设置样式

    Python自动化之Excel 方法一:应用pip执行命令 安装openpyxl模块pip install openpyxl 方法二:在Pycharm中:File->Setting->左侧 ...

  6. asp.net添加删除表格_如何用openpyxl自动化编写Excel电子表格

    有很多不同的东西你可以写到电子表格,从简单的文本或数字值到复杂的公式,图表,甚至图像. 创建一个简单的电子表格 之前,大家看到了一个非常快速的例子,就是如何将 "Hello world!&q ...

  7. antd 表格树如何展开_如何分析工作,找出规律,使用excel大幅度提高工作效率...

    在职场中,掌握一定的excel知识,有时候可以极大的提高工作效率,减少加班次数. 但是有的人可能不知道如何去做,下面我使用一个我前几天遇到的工作场景,一步一步的来给大家展示一下,如何使用excel提高 ...

  8. excel合并多个工作表_快速将多个Excel表格合并成一个Excel表格

    之前在微信群内有朋友问我如何快速将多个Excel表格合并成一个Excel表格,当时没有讲解清楚,今天专门来告诉大家如何快速合并Excel表格到一个工作表中. 在合并表格中,不外乎以下两种情况: 将多个 ...

  9. Excel怎么自动生成目录点击这个目录就可进入对应的工作表格

    几天不研究学习Excel感觉心里总是空空的,所以今日在解答朋友如何快速定位到第一个工作表的快捷键的时候发现到了微软没有支持直接快捷键切换到第一个工作表,但是经过长时间的思索,我发明了长按Ctrl+Pa ...

最新文章

  1. ti的硬件时钟和系统时钟同步
  2. 前途无量的MEMS传感器
  3. python常见函数
  4. htmlparser新建tag类(以iframe标签为例)
  5. secure使用vi编辑远程机器文件出现4;m
  6. (转)Nginx反向代理设置 从80端口转向其他端口
  7. python求n的阶乘并输出身份信息_python编程求n的阶乘_使用Python编程的阶乘
  8. android中json解析及使用(上)
  9. python 根据开头时间戳 合并两个文件
  10. [二进制拆分]Luogu1833 樱花
  11. 千兆以太网_接收模块设计_udp_rgmii_rx
  12. 软件工程师嵌入式开发交流论坛推荐排行
  13. win10安装虚拟机
  14. Eclipse 输入的汉字都变成了繁体
  15. 修改chrome滚动条的样式
  16. 多edittext监听变化的优化
  17. Quill编辑器介绍及扩展
  18. Visual Studio 2019 卸载干净+下载安装方法 2021-5-7
  19. 私有云的优缺点_什么是公有云、私有云、混合云 ?各自的优缺点有哪些?
  20. Java环境准备——JDK下载和安装、IDEA下载和安装

热门文章

  1. web前端——实现倒计时,“距离双11天猫狂欢节还剩xxx”
  2. Kylin cuboid算法修改
  3. 存储基础知识之固态硬盘
  4. Google创始人---谢尔盖-布林
  5. 树莓派搭建百度云同步
  6. 单、双激光雷达启动与双激光雷达的外参标定(VLP-16)
  7. Pandas50个高级高频操作
  8. 求无序数组的第K(大/小)数的三种方法
  9. 通过ansible和Flask-APScheduler实现自动化无人值守修改服务器账号密码
  10. 暑假好看的日剧来啦~~