用openpyxl实现excel的统计汇总

您所在的位置:网站首页 python分类汇总计数 用openpyxl实现excel的统计汇总

用openpyxl实现excel的统计汇总

2023-08-14 00:24| 来源: 网络整理| 查看: 265

某日,收到客户的一个小需求,要计算一张excel表,如下所示:

 

要求,计算各项目的平均值,平均值乘以一个区间,用”-”分格,并总汇总其间值,结果如下所示:

 

我们用openpyxl 计算实现。先简要介绍一下这个库。Openpyxl是一个基于python实现操作excel的库,下面给一个简要示例,更多的API百度一下吧。

from openpyxl import load_workbook #打开excel bk2 = load_workbook("02.xlsx") #获取工作簿 wt2 = bk2.get_sheet_by_name("Sheet1") #写入值 wt2.cell(1,1).value = "abc" #获取值 print(wt2.cell(1,2).value) #另存为 bk2.save("01.xlsx")

这些代码说明几个问题。一是我们可以遍历表格,cell(row, col),row是行,col是列,wt2.cell(1,1)获取行1,列A的单元格;二是可以载入和另存为,基于这个,我们先做一个模板,计算结果后,把值填入模板,再另存为需要的结果。这样的好处不仅不会修改到原始数据,而且格式也符合要求。

先定义一个参数,用字典结构。如下所示。

parmas = {"01": [(5, 6),  (15, 20)],           "02": [(8, 11), (16, 24)],           "03": [(13, 15), (1.4, 2.4)],           "04": [(17, 18), (1, 1.4)],           "05": [(20, 20), (1, 1.4)],           "06": [(22, 22), (0.7, 1)]}

解释一下?Python中,字典的键和值用冒号(:)分隔开,是基于于散列实现的(谁关心呢?),示例中值是一个列表list,这个列表表由 二个元组组成,第一个元组是原始数据的行号,第二个元组是用于计算其间值的参数。

有了这些内容,应该就可以解决问题。一些注意事项是。

计算后的结果仅需要保留两位小数点。用str的format方法。如下所示。

wt2.cell(rowIndexs[1], colIndex).value = "{0:.2f}".format(111.0213333)

读取值是,可能是字符串,数值格式,先用excel格式化一下再载入。

 

 

 

 

 

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3