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

 更新时间:2015年07月25日 11:25:14   作者:Sephiroth  
这篇文章主要介绍了Python实现对excel文件列表值进行统计的方法,涉及Python基于win32com组件操作表格文件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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内存管理精准释放与延迟拷贝技术探究

    这篇文章主要为大家介绍了Python内存管理精准释放与延迟拷贝技术探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python实时监控cpu小工具

    python实时监控cpu小工具

    这篇文章主要为大家详细介绍了python实时监控cpu的小工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python中logging模块的用法实例

    Python中logging模块的用法实例

    这篇文章主要介绍了Python中logging模块的用法实例,以实例形式介绍了日志模块logging的用法,具有一定的实用价值,需要的朋友可以参考下
    2014-09-09
  • Python使用代理抓取网站图片(多线程)

    Python使用代理抓取网站图片(多线程)

    Python作为一门功能强大的脚本语言,经常被用来写爬虫程序,下面是使用Python通过代理进行多线程抓取图片,算是一个简易的python多线程爬虫
    2014-03-03
  • 用Python实现二叉树、二叉树非递归遍历及绘制的例子

    用Python实现二叉树、二叉树非递归遍历及绘制的例子

    今天小编就为大家分享一篇用Python实现二叉树、二叉树非递归遍历及绘制的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python数据库sqlite3图文实例详解

    Python数据库sqlite3图文实例详解

    SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎,下面这篇文章主要给大家介绍了关于Python数据库sqlite3的相关资料,需要的朋友可以参考下
    2022-09-09
  • Python OpenCV特征检测之特征匹配方式详解

    Python OpenCV特征检测之特征匹配方式详解

    OpenCV中提供了两种技术用于特征匹配,分别为Brute-Force匹配器和基于FLANN的匹配器。本文将为大家详细介绍一下这两种匹配方式,需要的可以参考一下
    2021-12-12
  • Python OpenCV中的drawMatches()关键匹配绘制方法

    Python OpenCV中的drawMatches()关键匹配绘制方法

    这篇文章主要介绍了Python OpenCV中的drawMatches()关键匹配绘制方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • Python的输入,输出和标识符详解

    Python的输入,输出和标识符详解

    这篇文章主要介绍了介绍了Python的输入,输出和标识符,有需要的朋友们可以参考一下,希望能给您带来帮助
    2022-01-01
  • 在Python的一段程序中如何使用多次事件循环详解

    在Python的一段程序中如何使用多次事件循环详解

    循环是我们在日常开发中是必不可少会遇到的,下面这篇文章主要给大家介绍了关于在Python的一段程序中如何使用多次事件循环的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09

最新评论