maonx 发表于 2010-01-29 18:48

用python对execl文件列表值的统计

    今天应同事要求,帮她写了一个小程序,用python写的,统计一个execl文件 的特定列里的所有值的出现次数

代码:
=====================================================

#!/usr/bin/env python
#coding=gbk
#此PY用来统计一个execl文件中的特定一列的值的分类
import win32com.client
filename=raw_input("请输入要统计文件的详细地址:")
flag=0       #用于判断文件 名如果不带‘日’就为 0
if '\xc8\xd5' in filename:flag=1
print 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()
      while '.' in i: i=i.replace('.',' ')
      deptlist+=i.split()
      
    deptlist=deptlist
    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,typelist,'\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,deptlist,'\t',
            if i % 2 ==1 : print '\n'
finally:
    xls.Quit()
raw_input('\n\n'+50*'='+'\n请输入回车键退出程序!')
print '正在退出程序,请稍等。。。'

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/82009/showart_2164358.html

hhb19812001 发表于 2015-05-18 22:20

点赞:victory:
页: [1]
查看完整版本: 用python对execl文件列表值的统计