Python 对execl文件列表值的统计,pythonexecl,#!/usr/bin/e


#!/usr/bin/env python#coding=gbk#此PY用来统计一个execl文件中的特定一列的值的分类import win32com.clientfilename=raw_input("请输入要统计文件的详细地址:")flag=0       #用于判断文件 名如果不带‘日’就为 0if '\\xc8\\xd5' in filename:flag=1print 50*'='+'\\n\\t 请稍等,程序正在统计中。。。'try:    xls=win32com.client.Dispatch('et.Application')    try:        xlsfile=xls.Workbooks.Open(filename)    #打开指定的文件,一般打开的是sheet1        sheet=xlsfile.Worksheets('Sheet1')    except:        print '文件找开错误!'        exit(1)        print '程序正在自动退出。。。'    if sheet.Cells(3,6).Value!=u'业务类型' or sheet.Cells(3,3).Value!=u'转办单位':        print '您输入的表格已不是默认的表格,数据格式有误'        exit(1)    #这个判断是当文件中的特定列改变时,直接退出程序    i=4    dept=sheet.Cells(i,3).Value    type=sheet.Cells(i,6).Value    typelist=[]      #用于存放数据的列表,下面就是取sheet表里的某一列数据    deptlist=[]      #用于存放转办单位的列表    while type:        typelist.append(type)        deptlist.append(dept)        i=i+1        type=sheet.Cells(i,6).Value        dept=sheet.Cells(i,3).Value    #存放列的数据到二个列表中    counts=len(typelist) #总件数    if counts==0:        print '输入的文件统计结果为0,是否文件的格式有误?'        exit(1)    typelist=[(i,typelist.count(i)) for i in set(typelist)]    departmentlist=[]    delchar='0123456789'  #删除取出列表中有可能带数字 分开字段有空格的话    for i in deptlist[:]:        i=''.join([j for j in i if j not in delchar])        while '.' in i: i=i.replace('.',' ')        deptlist+=i.split()    deptlist=deptlist[counts:]    deptlist=[(i,deptlist.count(i)) for i in set(deptlist)]    #下面是打印格式等 。。。    print '\\n'+50*'='    print '\\t信访件总数为%d件,下面是各分类件数' % counts,    print '\\n'+50*'='+'\\n'    for i in range(len(typelist)):        print '\\t',typelist[0],typelist[1],'\\t',        if i % 2 ==1 : print '\\n'    if flag==0:        print '\\n'+50*'='+'\\n\\t下面是转办单位的分类\\n'+50*'='        for i in range(len(deptlist)):            print '\\t',deptlist[0],deptlist[1],'\\t',            if i % 2 ==1 : print '\\n'finally:    xls.Quit()raw_input('\\n\\n'+50*'='+'\\n请输入回车键退出程序!')print '正在退出程序,请稍等。。。'#该片段来自于http://byrx.net

评论关闭