使用python解析excel实现工作效率统计

因为工作关系,常需要分析成员每周工作情况。如果靠人工统计,费力又耗时,想到何不利用python自动化来完成这样的工作

主要思路就是,通过python从原始数据中,统计出一周内每个人在各种事件中耗费的时间,保持到一个sheet中

首先需要用到python里面几个操作excel的库

from openpyxl.workbook import Workbook 
 
#ExcelWriter,里面封装好了对Excel的写操作
from openpyxl.writer.excel import ExcelWriter  

from openpyxl.reader.excel import load_workbook
并加载解析输入参数的库

from optparse import OptionParser
接下来,先解析输入参数,获得要操作的文件路径

usage = 'Usage: %prog file'

parser = OptionParser(usage)

(options, args) = parser.parse_args()

path = args[0]
然后,通过load_workbook打开excel文档

wb=load_workbook(path)
接着,创建新的sheet,并从原有sheet中获得原始数据

whs_sheet = wb.create_sheet(title='whs')
data_sheet = wb.get_sheet_by_name("owssvr")
下面就开始计算原始数据的最大行列数和新建sheet的最大行列数

MaxRow = data_sheet.max_row
MaxColumn = data_sheet.max_column

MaxWhsRow = len(NameList)
MaxWhsColumn = len(WhsList)
再创建一个二维数组,对应人名和事件的映射

WhsArry = [[0 for i in range(MaxWhsColumn-1)]for i in range(MaxWhsRow)]
接下来,就是通过几个循环,来将数据统计好并写入到新建的sheet中

for name in NameList:
	for Row in range(2, MaxRow+1):
		if name.split('.', 1)[0] == data_sheet.cell(row=Row, column=2).value.split(' ', 1)[0]:
			whs = data_sheet.cell(row=Row, column=8).value
			hous = data_sheet.cell(row=Row, column=6).value
			WhsArry[NameList.index(name)][WhsList.index(whs)-1] = WhsArry[NameList.index(name)][WhsList.index(whs)-1] + hous
			
			

for Row in range(2, MaxWhsRow+2):
	for Column in range(2, MaxWhsColumn+1):
		if Column == MaxWhsColumn:
			for count in range(2, MaxWhsColumn+1):
				CellFrom = 'B'+str(Row)
				CellTo = 'H'+str(Row)
				whs_sheet.cell(row=Row, column=Column).value = '=SUM('+CellFrom+':'+CellTo+')'
		else:
			whs_sheet.cell(row=Row, column=Column).value = WhsArry[Row-2][Column-2]
最后,通过save将对文档的修改保存下来

wb.save(path)


整个程序,其实相当简单,基本有点编程基础的都能完成,主要是在工作过程中,能时时保持“偷懒”的习惯,能够程序做的事情,尽量不要人工来做








  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值