python——处理xls表格
因为工作需要,现有一个运营商导出的xls固定电话话费账单。
账单比较详细,而我最终需要的数据只有那个号码这个月用了多少话费的统计结果。
当年没有好好学office,以致于无从下手。泪奔/(ㄒoㄒ)/~~
账单结构如下:
想想这几百个号码每个月都有账单,作为一个会偷懒的员工肯定不能抵消地人力处理啦。我们要提倡自动化办公嘛!
好吧,幸好当初学了那么一点点的python可以实际应用一下。事实证明学了不用的东西会很快生锈的。
代码如下:
'''from openpyxl import load_workbook wb=load_workbook(filename=r'201506.xlsx') print "worksheet range(s):",wb.get_named_ranges() ''' #coding=utf-8 #代码中包含汉字 import xlrd def extracttelfree(): workbook=xlrd.open_workbook('201506.xls') table=workbook.sheets()[0] excel_colB=table.col_values(1) #excel col B excel_colC=table.col_values(2) #excel col C telnum=[] telfree=[] for colb in range(1,len(excel_colB)): if excel_colB[colb]!="": telnum.append(excel_colB[colb]) for colf in range(1,len(excel_colC)): if excel_colC[colf]==u'小计': telfree.append(table.cell(colf,3).value) phonecount=len(telnum) print "电话号码合计 %d 个"%phonecount print "话费个数合计 %d 个"%len(telfree) dict={} for i in range(0,phonecount): dict[telnum[i]]=telfree[i] print u"号码话费映射队列长度:",len(dict) f =open('telnumber.txt') fread=f.readlines() print u"号码文本列表长度:",len(fread) for num in range(0,len(fread)): numfile =fread[num].strip() freefind=dict.get(numfile,0) freefind=str(freefind) print freefind f.close() extracttelfree()
然后,就这样把需要的东东提取了。