本文实例讲述了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程序设计有所帮助。