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()

然后,就这样把需要的东东提取了。

优质内容筛选与推荐>>
1、游戏策划是怎样炼成的
2、spring配置文件头部
3、实用工具分享
4、宽字节注入浅浅谈!
5、Laravel 5 基础(十一)- Eloquent 关系


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号