用python编excel统计表_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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大话云存储,这个“对象”可能无处不在

戳蓝字“CSDN云计算”关注我们哦!文 | pasca来源 | 蛋蛋团(ID:dandan_tuan)大纲前言1、Who:谁使用对象存储2、What:对象存储是什么3、Why:为什么他们会使用对象存储4、how to do:应用场景分析5、…

linux java文件 core_linux下部署.net core/java

.net core1.查看系统是否已安装net core命令:dotnet --info如果提示未找到命令,说明需要按照net core环境,否则跳过2,3两步2.查看系统版本,这里是CentOS 7命令:cat /etc/redhat-release3.根据系统版本找到安…

振奋!中国正式进入5G元年;华为5G俄罗斯签下大单;王坚进入工程院院士第二轮评审...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

java 对象复制 反射_利用Java反射机制实现对象相同字段的复制操作

一、如何实现不同类型对象之间的复制问题?1、为什么会有这个问题?近来在进行一个项目开发的时候,为了隐藏后端数据库表结构、同时也为了配合给前端一个更友好的API接口文档(swagger API文档),我采用POJO来对应数据表结构&#xff…

企业实战_01_Redis下载/安装/运行/停止

文章目录一、Redis下载:官方:https://redis.io/二、Redis安装:2.1. 上传redis软件服务器2.2. 解压redis2.3. 进入redis目录,进行redis安装2.4. 执行redis安装测试:2.5. 安装异常处理三、redis 启动、停止3.1. 进入src目…

关于5G,你必须知道的事儿……

戳蓝字“CSDN云计算”关注我们哦!文 | 小枣君来源 | 鲜枣课堂什么是5G 5G,就是5th Generation Mobile Networks(第五代移动通信网络),也可以称为5th Generation Wireless Systems(第五代无线通信系统&a…

java管理员登录_idea实现管理员登录javaweb

mysql创建db_0106数据库,创建表添加一条数据,id int自增,密码:为MD5加密insert into tb_sys values(null,admin,MD5(123),"系统管理员");项目目录结构com.isoft.db包下db.properties文件mysql.drivercom.mysql.jdbc.Dri…

linux环境下redis5.0的安装配置

文章目录一、Redis介绍:二、安装Redis2.1. 下载 解压 进入文件夹 然后 编译2.2. 启动Redis2.2.1. 指定配置文件启动redis2.2.2. 配置redis后台启动三. 登录验证一、Redis介绍: Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统…

漫话:如何给女朋友解释什么是编译与反编译

戳蓝字“CSDN云计算”关注我们哦!来源 | 漫话编程某天下班后,我在家里进行电话面试,问到面试者这样一个问题:"你知道使用哪些办法可以反编译Java代码吗?"。但是面试者回答的并不好,所以我在面试评…

java数组下标越界处理_可恶的Java数组下标越界检查

刚刚学习Java不到一个星期,本来是搞C的,没事学习Java,将来可以更好的想Android方向发展一下。现在正处于磨基础的阶段,对与每一个新手来书,最痛苦的莫过于此了。写了一个冒泡排序,用C的思想写,没…

企业实战_02_Redis基础

接上一篇:企业实战_01_Redis下载/安装/运行/停止https://blog.csdn.net/weixin_40816738/article/details/99198062 Redis小知识: 向服务器发送命令 ①redis-cli连上redis服务器后,可以在命令行发送指令; ②ping,测试…

Python 爬取 42 年高考数据,告诉你高考为什么这么

戳蓝字“CSDN云计算”关注我们哦!作者 | 徐麟责编 | 伍杏玲封图 | CSDN付费下载于东方IC对于像作者一样已经工作的“上班族”来说,6月7号到9号三天无疑是兴奋到飞起的,终于迎来了令人愉悦的端午假期:然而有那么一群人,…

windows下载、安装运行redis

https://github.com/microsoftarchive/redis/ redis的配置文件: redis.windows.conf

java读取excel某个单元格的值_[转载]Java读取Excel中的单元格数据

目前网上能找到的读取Excel表格中数据的两种比较好的方案:PageOffice好用开发效率高;POI免费。供大家参考,针对具体情况选择具体方案。1. PageOffice读取excelimport com.zhuozhengsoft.pageoffice.*;import com.zhuozhengsoft.pageoffice.ex…

【五分钟】看完一道有装逼解法的算法题

戳蓝字“CSDN云计算”关注我们哦!作者 | 程序员小吴来源 | 五分钟学算法题目来源于 LeetCode 上第 342 号问题:4 的幂。题目难度为 Easy,目前通过率为 45.3% 。题目描述给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否…

企业实战_03_Redis基础命令

接上一篇:企业实战_02_Redis基础 https://blog.csdn.net/weixin_40816738/article/details/99204244 先启动redis服务端,在启动redis客户端 说明命令info查看系统信息ping测试连通性dbsizekey数量keys *查看所有的keyselect 1切换到键空间(keyspace1)…

Docker精华问答 | Docker commit如何用?

Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松!1Q:…

java channel源码_Netty 4.0 源码分析(三):Channel和ChannelPipeline

Client和server通过Channel连接,然后通过ByteBuf进行传输。每个Channel有自己的Pipeline,Pipeline上面可以添加和定义Handler和Event。Channel类1 package io.netty.channel;2 import io.netty.buffer.ByteBuf;3 import io.netty.buffer.MessageBuf;4 im…

(解决)can't connect to redis-server

编辑 vim redis.conf bind 127.0.0.1 添加本机IP地址 protected-mode no //将yes改为no yes为保护模式 requirepass gblfy//找到此处设置密码 ./redis-server ../redis.conf //重启redis ./redis-cli -a gblfy shutdown//关闭redis