本文实例讲述了Python实现对excel文件列表值进行统计的方法。分享给大家供大家参考。具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#!/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([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 '正在退出程序,请稍等。。。'
|
希望本文所述对大家的Python程序设计有所帮助。