Python实现对excel文件列表值进行统计的方法

作者:Sephiroth 时间:2022-08-08 17:42:23 

本文实例讲述了Python实现对excel文件列表值进行统计的方法。分享给大家供大家参考。具体如下:


#!/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程序设计有所帮助。

标签:Python,excel,统计
0
投稿

猜你喜欢

  • 浅析Python中MySQLdb的事务处理功能

    2024-01-14 01:23:10
  • django框架模板中定义变量(set variable in django template)的方法分析

    2021-11-18 03:28:04
  • 利用Echarts如何实现多段圆环图

    2024-04-28 09:36:22
  • Go语言接口用法实例

    2024-02-04 22:27:30
  • mysql 5.7.17 winx64解压版安装配置方法图文教程

    2024-01-22 07:47:16
  • 3分钟看懂Python后端必须知道的Django的信号机制

    2022-08-17 18:17:55
  • JavaScript正则表达式的贪婪匹配和非贪婪匹配

    2024-04-30 09:53:01
  • python中如何使用函数改变list

    2022-06-04 13:38:38
  • Sql Server中清空所有数据表中的记录

    2024-01-15 00:10:26
  • Python torch.onnx.export用法详细介绍

    2022-04-28 22:07:33
  • 详解python和matlab的优势与区别

    2023-05-15 11:28:04
  • php二分查找二种实现示例

    2023-11-21 00:40:13
  • MySQL中Select查询语句的高级用法分享

    2024-01-18 11:33:33
  • python字典进行运算原理及实例分享

    2023-02-16 14:17:14
  • 解决MySql8.0 查看事务隔离级别报错的问题

    2024-01-17 23:14:01
  • Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]

    2023-03-13 09:20:52
  • python中的os.mkdir和os.makedirs的使用区别及如何查看某个模块中的某些字母开头的属性方法

    2021-04-15 08:05:47
  • Python通过命令开启http.server服务器的方法

    2022-10-08 01:42:41
  • Python爬取365好书中小说代码实例

    2023-05-31 21:25:55
  • Python list列表删除元素的4种方法

    2021-09-11 06:39:09
  • asp之家 网络编程 m.aspxhome.com