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中的迭代器、生成器与列表解析用法
Mar 20 Python
Zabbix实现微信报警功能
Oct 09 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
详解python中requirements.txt的一切
Mar 03 Python
Python自定义线程池实现方法分析
Feb 07 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 Python
django-filter和普通查询的例子
Aug 12 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
Python中关于浮点数的冷知识
Sep 22 Python
详解Python 函数参数的拆解
Sep 02 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 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/11/16 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
JS常用跨域方法实现原理解析
2020/12/09 Javascript
python基础教程之常用运算符
2014/08/29 Python
python多进程操作实例
2014/11/21 Python
Python做文本按行去重的实现方法
2016/10/19 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
政协调研汇报材料
2014/08/15 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
六五普法学习心得体会
2016/01/21 职场文书
MySQL之DML语言
2021/04/05 MySQL
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL
nginx访问报403错误的几种情况详解
2022/07/23 Servers