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对象引用、可变性和垃圾回收详解
Aug 21 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
Python socket实现简单聊天室
Apr 01 Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 Python
python3.6生成器yield用法实例分析
Aug 23 Python
Python列表list常用内建函数实例小结
Oct 22 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
python双向链表原理与实现方法详解
Dec 03 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
Feb 05 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
Python使用Matlab命令过程解析
Jun 04 Python
Python中的面向接口编程示例详解
Jan 17 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
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
PHP队列用法实例
2014/11/05 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
prototype 中文参数乱码解决方案
2009/11/09 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
js不完美解决click和dblclick事件冲突问题
2012/07/16 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
js转换对象为xml
2017/02/17 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
深入理解redux之compose的具体应用
2020/01/12 Javascript
python访问sqlserver示例
2014/02/10 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
python实现简单银行管理系统
2019/10/25 Python
python如何安装下载后的模块
2020/07/03 Python
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
南京某公司笔试题
2013/01/27 面试题
业务员薪酬管理制度
2014/01/15 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
好人好事演讲稿
2014/09/01 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
python获取带有返回值的多线程
2022/05/02 Python
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL