|从Excel中解救你!如何用Python实现报表自动化( 二 )
这一步是在做什么:
· 创建一个文件路径变量 , 以确定要将文件存储在何处 ,
· 使用ExcelWriter保存文件
· 将两个透视表保存到单独的工作表中 , 从第3行开始(稍后从中保留以用于页眉)
使报表更漂亮
Pandas有助于将数据导入到Excel中 。 既然数据已经导入Excel , 不妨将其美化一下 , 来添加一些可视化效果 。
#Section 05 - Loading the Workbook wb =load_workbook(file_path) sheet1= wb['Quarterly Sales'] # Section 06 - Formatting the First Sheet sheet1['A1'] ='Quarterly Sales' sheet1['A2'] ='datagy.io' sheet1['A4'] ='Quarter' sheet1['A1'].style ='Title' sheet1['A2'].style ='Headline 2' for i inrange(5, 9): sheet1[f'B{i}'].style='Currency' sheet1[f'C{i}'].style='Currency' sheet1[f'D{i}'].style='Currency' # Section 07 - Adding a Bar Chart bar_chart=BarChart() data=http://news.hoteastday.com/a/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)
在Section 5中 , 将工作簿和工作表加载到Openpyxl可以处理的单独对象中 。
而Section 6中操作更多:
· 在表一的A1和A2单元格中添加标题和副标题 。
· 更改“quarters”列的标题 , 使其更能反映数据 。
· 对标题和副标题应用样式 。
· 将金融领域的单元格转换为货币 。 这需要对每单个单元格进行单独处理 。 因此使用了for循环 。
在Section 7中 , 添加了条形图:
· 创建一个条形图对象 , 并识别存储数据和类别的字段 。
· 随后将数据和类别应用于对象 。
· 最后 , 添加描述性标题和样式 。 使用许多不同的样式都试试!
这就是工作簿现在的样子:
本文插图
所得工作簿之一 | 图源: Nik Piepenbreier
对多个工作簿执行工作流自动化
虽然已经很方便了 , 但是仅在一个区域执行这样的操作只能节约一点点的时间 。 我们可使用for循环 , 对所有的区域执行此操作 。
#Section 08 - Getting Region Names regions =list(df['Region'].unique()) # Section 09 - Looping Over All Regions folder_path=#Insert the path to the folder you want tosave the reports in 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 ='QuarterlySales', 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 inrange(5, 10): sheet1[f'B{i}'].style='Currency' sheet1[f'C{i}'].style='Currency' sheet1[f'D{i}'].style='Currency' bar_chart =BarChart() data =http://news.hoteastday.com/a/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
推荐阅读
- 热心的90后女孩|钉钉打卡设置了公司wifi才能打卡,如何用自己的流量在家正常打卡?
- 聚成教育|Excel表格技巧—Excel中如何制作旭日图
- pdf|如何在iPhone上将PDF转换为Excel
- Excel函数与VBA实例|向左查询只会vlookup函数就out了,这两组函数公式效率更高
- 技术大威|学会它,处理word中的表格轻而易举,不用再打开Excel折腾了
- 『小技巧,excel』WPS选择性文本输入,下拉菜单轻松添加,无需设置数据有效性
- 「」表格技巧—Excel多表格如何自动关联
- 迅捷CAD如何在CAD中插入Excel表格?一分钟教你学会两种方式
- 搜狐新闻如何用3000元买到“羡慕嫉妒恨”?
- 「上观」江南水乡教你如何用科技饮水,这场带货大会上青浦副区长推荐了这款智能茶艺机