没有转义的Excel!

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

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

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

使用Python自动化Excel报表

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

让Python帮你!

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

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

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

我们按区域细分该数据,并创建两个汇总表,包括格式和图表,这些动作都不需要打开Excel!数据可视化最终形式:从一个工作表到四个可视化报表

加载数据库

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

# 第1部分-加载我们的库

import pandas as pd

from openpyxl import load_workbook

from openpyxl.styles import Font

from 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 saved

quarterly_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 = 3

wb.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的好处在于可重复执行任务的可伸缩性。

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

结论

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

--END--

欢迎大家关注我们的公众号:为AI呐喊(weainahan)

找工作一定少不了项目实战经验,为了帮助更多缺少项目实战的同学入门Python,我们在头条上创建了一个专栏:《7小时快速掌握Pthon核心编程》,通过一个项目,快速掌握Python,欢迎大家点击链接或者阅读原文进行试看~头条专栏​learning.snssdk.com

python自动化表格处理软件_Python自动化处理Excel报表,我的工作更轻松了!相关推荐

  1. python word 表格 框线_Python 自动化办公 | 将 Word 表格转为 Excel

    原标题:Python 自动化办公 | 将 Word 表格转为 Excel 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共 ...

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

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

  3. python自动化办公实例展示_python自动化办公?学这些就够用了

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手? python在自动化办公领域越来越受欢迎,批量处 ...

  4. python自动化办公是什么_Python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  5. python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel

    作者:青春阳光king python实现word转成自定义格式的excel文档(解决思路和代码)支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符. 最近在开发一个答题类的小程 ...

  6. 用了这款自动化表格制作软件,跟手工表格说再见

    做表格什么感觉?苦,累! 天天做表格什么感觉?很苦,很累! 但是我们还要不要继续?要! 为什么?因为老板说要! 没有经过表格磨练的职场人算不上真正的职场人 我想这句话,大部分人是认同的,好像是从信息时 ...

  7. 工作表格excel用python_Python自动化处理Excel报表,工作更轻松

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

  8. 施耐德 m340 编程手册_施耐德推出开放自动化平台 开启“软件驱动自动化”时代...

    原标题:施耐德推出开放自动化平台,开启"软件驱动自动化"时代 新闻概述: · 施耐德电气推出全球领先的以软件为中心的EcoStruxure开放自动化平台(EcoStruxure A ...

  9. python word 表格 框线_python设置表格边框的具体方法

    安装 xlwings 直接安装用 pip install xlwings,用 anaconda 的,已经内置了,见下图. 导入 xlwings import xlwings as xw 打开 Exce ...

最新文章

  1. c++ map iterator 获取key_前K个高频的元素衍生之Map的Value与Key排序
  2. 成功解决Scrapy框架的问题ModuleNotFoundError: No module named 'win32api'
  3. Hit or Miss
  4. xodo上的笔记不见了_一起来“终极笔记名场面批发市场”进货吗
  5. 最新SSM完整模板(Spring+SpringMVC+MybatisPlus)
  6. Golang预备知识
  7. ArrayList 和LinkedList
  8. 使用sharepoint自带的文本编辑器2
  9. Linux —— 常见指令及其英文全称
  10. SAP物料批次管理配置及操作手册
  11. axios中文文档整理
  12. 机器人仿真 软件 V-REP 入门教程 (一)简介
  13. 光学成像原理之景深(Depth of Field)
  14. 计算机页面打不开非常卡,电脑卡的厉害几乎打不开网页怎么办
  15. 嵌入式系统开发-麦子学院(12)——ARM Bootloader开发
  16. Mac 打印机打印乱码%! PS -Adobe -3.0 %!APL_DSL_Encoding:UTF8
  17. VR全景云展厅,实现7*24小时的线上宣传能力!
  18. 单片机c语言中sbuf的定义,SBUF的详细介绍!(51单片机)
  19. C#调用bartender进行动态打印以及批量打印的完整教程
  20. 科学理论和计算机技术的发展史,探究计算机科学与技术的发展趋势

热门文章

  1. docx4j word to html,使用Docx4J生成 html
  2. Office PIA:关于Office PIA应用程序的部署
  3. word2vec关键词提取 python_如何从word2vec的Google预训练模型中提取单词向量?
  4. Android屏幕解锁图案破解
  5. 高维统计学习笔记1——LASSO和Oracle性质
  6. linux:通过rpm包部署FTP服务
  7. 应届毕业生身份有什么用?应注意事项?
  8. 网络营销未来的发展趋势
  9. 达人评测i5 1340p和i5 12500h差距 酷睿i51340p和i5 12500h选哪个
  10. 关于把war包放在Tomcat的webapps目录下 启动服务 前端访问报404