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


Posted in Python onJuly 25, 2015

本文实例讲述了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 相关文章推荐
在Python中使用模块的教程
Apr 27 Python
用python做一个搜索引擎(Pylucene)的实例代码
Jul 05 Python
用python实现的线程池实例代码
Jan 06 Python
python2.7到3.x迁移指南
Feb 01 Python
Python对多属性的重复数据去重实例
Apr 18 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
python动态文本进度条的实例代码
Jan 22 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
Python手动或自动协程操作方法解析
Jun 22 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
python获取对象信息的实例详解
Jul 07 Python
Python自动扫雷实现方法
Jul 25 #Python
Python导出DBF文件到Excel的方法
Jul 25 #Python
Python实现的RSS阅读器实例
Jul 25 #Python
Python获取央视节目单的实现代码
Jul 25 #Python
Python实现将DOC文档转换为PDF的方法
Jul 25 #Python
将Django框架和遗留的Web应用集成的方法
Jul 24 #Python
将Python的Django框架与认证系统整合的方法
Jul 24 #Python
You might like
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
多php服务器实现多session并发运行
2006/10/09 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
php工具型代码之印章抠图
2018/07/18 PHP
基于JavaScript 类的使用详解
2013/05/07 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
Python IDLE入门简介
2017/12/08 Python
详解如何减少python内存的消耗
2019/08/09 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
python实现logistic分类算法代码
2020/02/28 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
如何撰写岗位职责
2014/02/01 职场文书
2015元旦标语横幅
2014/12/09 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
用python实现监控视频人数统计
2021/05/21 Python
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL