Python实现对excel文件列表值进行统计的方法
作者:Sephiroth 发布时间:2022-08-08 17:42:23
标签:Python,excel,统计
本文实例讲述了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程序设计有所帮助。


猜你喜欢
- 进程与线程想象在学校的一个机房,有固定数量的电脑,老师安排了一个爬虫任务让大家一起完成,每个学生使用一台电脑爬取部分数据,将数据放到一个公共
- 使用pandas读xlsx文件读取前n行数据读取指定数据(指定行指定列)获取文件行号和列标题将数据转换为字典形式import pandas
- 参考廖雪峰的Python教程,实现Linux Python3获取雅虎天气#!/usr/bin/env python3# coding: ut
- 如下所示:import time首先导入时间模块在程序开始执行的地方写入:start=time.clock()在程序末尾写入:end=tim
- 把文件解压到一个目录下这是解压后的目录 将my.ini文件考进去 双击打开my.ini找到这两行更改成自己的解压路径保存
- 在写移动端页面的时候,弹出遮罩层后,我们仍然可以滚动页面。vue中提供 @touchmove.prevent 方法可以完美解决这个问题<
- 用法: 按住鼠标左键拖拽一个框后释放洗洗睡了<!DOCTYPE html public "-//W3C//DTD XHTML
- 多页应用每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用。为什么多页应用的首屏时
- 今天的这篇文章是讲XHTML中的细节部分的,这篇续述的主题就是ID与CLASS怎么用,在标题中有提及使用原则与技巧,这里的使用原则与技巧是我
- Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的
- 一、单字节SQL注入MYSQL的SQL注入已经由来已久,以下是普遍采用的注入步骤:1、在GET参数上加一个/*或者#(mysql专有的注释)
- MySQL 当记录不存在时插入(insert if not exists) 在 MySQL 中,插入(insert)一条记录很简单,但是一些
- 背景描述:Pycharm作为python专业开发工具,要比轻量级的vscode更加稳定,适合个人、团队的项目开发。同时pycharm来创建虚
- 雅虎的BrowserPlus在曝光了N久后终于发布了,一款类似于Google Gears的浏览器增强插件。在支持的操作系统方面,Gears明
- 本文实例讲述了Python3中函数参数传递方式。分享给大家供大家参考,具体如下:之前在看北理工嵩天等老师的python3的课程,在第五周中老
- 本文实例讲述了python简单获取数组元素个数的方法。分享给大家供大家参考。具体如下:mySeq = [1,2,3,4,5] p
- 一.什么是RedisRedis是一个非关系型数据库,具有很高的存取性能,一般用作缓存数据库,减少正常存储数据库的压力。Redis可以存储键与
- 原先的ctrl+alt+L容易和各种软件的快捷键冲突在setting——keymap——右边搜索栏搜索Reformat Code就会出现该设
- 导语哈喽!我是木木子,又到了今日更新时刻!我们来看看写什么呢?小编有个好兄弟最近在追妹子,跟妹子打得火热!就差临门一脚了,这一jio我帮忙补
- 前面我们简单的了解Django的一些工作原理,其中关于页面展示的内容,也全部都是视图(Views)返回的内容,那么我们也知道前端包括很多内容