脚本如下:

from openpyxl import load_workbook

workbook = load_workbook(u'/tmp/test.xlsx') #找到需要xlsx文件的位置

booksheet = workbook.active #获取当前活跃的sheet,默认是第一个sheet

#如果想获取别的sheet页采取下面这种方式,先获取所有sheet页名,在通过指定那一页。

# sheets = workbook.get_sheet_names() # 从名称获取sheet

# booksheet = workbook.get_sheet_by_name(sheets[0])

#获取sheet页的行数据

rows = booksheet.rows

#获取sheet页的列数据

columns = booksheet.columns

i = 0

# 迭代所有的行

for row in rows:

i = i + 1

line = [col.value for col in row]

cell_data_1 = booksheet.cell(row=i, column=3).value #获取第i行1 列的数据

cell_data_2 = booksheet.cell(row=i, column=4).value #获取第i行 2 列的数据

cell_data_3 = booksheet.cell(row=i, column=8).value #获取第i行 3 列的数据

cell_data_4 = booksheet.cell(row=i, column=18).value #获取第i行 4 列的数据

print (cell_data_1, cell_data_2, cell_data_3, cell_data_4)

实例:python读取excel数据做分类统计

某excel中记录了某个人的通话记录,下面程序将按照通话地点,通话类型等统计通话时间

# -*- coding:utf-8 -*-

import xlrd

import datetime

infos=[]

info_file=xlrd.open_workbook('src.xls')#打开excel文件

info_sheet=info_file.sheets()[0]#通过索引顺序获取工作表

row_count=info_sheet.nrows#获取行数,列数ncols

for row in range(1,row_count):

time_string=info_sheet.cell(row,3).value

time_s_sp=time_string.split(':')

infos.append(#该数组里放了row_count个字典

{

'type':info_sheet.cell(row,2).value,#获取单元格,通话类型,主叫被叫

'other_cellphone':info_sheet.cell(row,0).value,#对方号码,

'timespan':datetime.timedelta(seconds=int(time_s_sp[2]),minutes=int(time_s_sp[1]),hours=int(time_s_sp[0])),

'gpscity':info_sheet.cell(row,5).value#通话是本地还是外地

}

)

time_all=datetime.timedelta(seconds=0)#初始化

time_types={}

time_classes={}

time_numbers={}

for infor in infos:#取出该数组里的字典

time_all +=infor['timespan']#求总通话次数

infor_type=infor['type']

if infor_type in time_types:

time_types[infor_type]+=infor['timespan']

else:

time_types[infor_type]=infor['timespan']#按通话类型统计通话时间

infor_class=infor['gpscity']

if infor_class in time_classes:

time_classes[infor_class]+=infor['timespan']

else:

time_classes[infor_class]=infor['timespan']#这里相当于先分类赋值再++,按归属地统计通话时间

infor_number=infor['other_cellphone']

if infor_number in time_numbers:

time_numbers[infor_number]+=infor['timespan']

else:

time_numbers[infor_number]=infor['timespan']#根据号码统计通话时间

print '总通话时间:%s' % time_all

print

print '总通话方式分类'

for k,v in time_types.items():

print k.encode('utf-8'),v

print

print '通话类型分类:'

for k,v in time_classes.items():

print k.encode('utf-8'),v

print

print '对方号码分类:'

for k,v in time_numbers.items():

print k,v

再优化下代码

# -*- coding:utf-8 -*-

import xlrd

from datetime import timedelta

def read_excel(file_excel):#读excel并将需要的数据分类放在数组里

infos=[]

info_file=xlrd.open_workbook(file_excel)

info_sheet=info_file.sheets()[0]

row_count=info_sheet.nrows

for row in range(1,row_count):

time_string=info_sheet.cell(row,3).value

time_s_sp=time_string.split(':')

infos.append(

{

'type':info_sheet.cell(row,2).value,

'other_cellphone':info_sheet.cell(row,0).value,

'timespan':timedelta(seconds=int(time_s_sp[2]),minutes=int(time_s_sp[1]),hours=int(time_s_sp[0])),

'gpscity':info_sheet.cell(row,5).value

}

)

return infos

def count_cell(list_dirs,infotype):#统计总通话及分类统计结果,存在字典里

result_dir={}

time_all=timedelta(seconds=0)

for list_dir in list_dirs:

time_all +=list_dir['timespan']

info_type = list_dir[infotype]

if info_type not in result_dir:

result_dir[info_type]=list_dir['timespan']

else:

result_dir[info_type]+=list_dir['timespan']

return time_all,result_dir

def print_result(result_dir):#打印数据

for k,v in result_dir.items():

print k.encode('utf-8'),v

if __name__=="__main__":

list_dirs=read_excel('src.xls')

time_all,result_type=count_cell(list_dirs,'type')

result_cell=count_cell(list_dirs,'other_cellphone')

result_gpscity = count_cell(list_dirs, 'gpscity')

print '总通话时间:%s' % time_all

print '按照通话类型分类:'

print_result(result_type)

print '按照号码分类:'

print_result(result_cell[1])

print '按照归属地分类:'

print_result(result_gpscity[1])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python导入xlsx文件-Python读取xlsx文件的实现方法相关推荐

  1. python 读取大文件_Python读取大文件

    1. 前言 前几天在做日志分析系统,需要处理几十G的文件,我尝试用原来的for line in open(filepath).readlines()处理,但停顿好久也没变化,可见占用不小的内存.在网上 ...

  2. Python 将数据写入pkl文件,读取pkl文件

    Python 将数据写入pkl文件,读取pkl文件 写入pkl文件 data = {"name": ["李明", "胡莉"]} with o ...

  3. 【Python基础】生成.pkl文件,读取.pkl文件的内容

    保存 def save_dict(data, name):with open(name + '.pkl', 'wb') as f:pickle.dump(data, f, pickle.HIGHEST ...

  4. android读取assets中的html文件,android读取assets文件.htm

    android读取assets文件 android读取assets文件 style='FONT-SIZE: 14px; FONT-FAMILY: verdana, "ms song" ...

  5. java+读取source资源_如何从JavaJAR文件中读取资源文件?

    如何从JavaJAR文件中读取资源文件? 我试图从一个单独的JAR文件中访问一个XML文件,这个JAR是作为桌面应用程序运行的.我可以获得我需要的文件的URL,但是当我将它传递给FileReader( ...

  6. C#不用ArcEngine,生成Shp文件(五)---------读取.shx文件和生成.shx文件

    这一篇来写一下.shx文件的读取跟生成.测试数据下载地址为:http://download.csdn.net/detail/gis0911178/9650967 在第一篇时候有介绍. 索引文件(.sh ...

  7. 第四章:数据存储-csv文件处理-读取csv文件的两种方式

    直接学习:https://edu.csdn.net/course/play/24756/280718 csv文件处理-读取csv文件的两种方式: # 这种方式读取到的每一条数据是个列表,所以需要通过下 ...

  8. Python读取excel文件可读取xlsx格式和xls格式可直接读取超链接,读出为字典格式(列表套字典),处理合并单元格的问题

    直接上代码:(代码有注释,代码下方有解释) 1.可读取excel中的xlsx格式文件 2.可读取excel中的xls格式文件 3.可直接读取网页上的excel的超链接 4.解决有列合并的情况以及行合并 ...

  9. python生成表格文件_python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...

  10. 【Python 2.7】xlrd读取Excel文件

    这篇博文参考于<Python 数据处理> 读取Excel文件需要用到xlrd模块,模块下载地址:xlrd下载地址 本博文中Excel文件下载地址:SOWC 2014 Stat Tables ...

最新文章

  1. python使用textwrap包在已经生成的长字符串中嵌入回车符实战
  2. 在Ubuntu中使用远程桌面
  3. python好学-html和Python哪个好学?
  4. Win11笔记本电源计划怎么设置 Win11设置电源计划为高性能的方法
  5. 浅谈对机器学习方法(决策树,SVM,knn最近邻,随机森林,朴素贝叶斯、逻辑回归)的理解以及用sklearn工具实现文本分类和回归方法...
  6. 云服务器一般选什么系统,云服务器一般选择什么系统好
  7. SAP License:2021年最新FICO面试答案
  8. 商城小程序、实例原型设计、电商app、积分商城、领券中心、会员中心、每日签到、小程序电商、优惠券、移动端电商、Axure原型、rp原型、产品原型、积分、会员卡
  9. 如何从低端面畜到高端面霸
  10. Android跳转到拨打电话的页面
  11. QT+ 状态栏+核心控件+浮动窗口
  12. (转)RemapKey等:小巧实用的键盘映射工具
  13. python刷leetcode_GitHub - eppoha/leetcode-python: 利用python分类刷leetcode题目
  14. linux 关机 日志记录,linux查看开关机记录
  15. 信息学奥赛一本通T1436-数列分段II (二分)
  16. IB心理学社会文化介绍
  17. P2184 贪婪大陆 线段树(优化:区间修改变为单点修改)
  18. 钢琴作品常用体裁名称及曲式
  19. lightning接口linux驱动,iPhone 8惊喜曝光:Lightning接口换USB Type-C
  20. 记录:mac和win共享磁盘(同一局域网)

热门文章

  1. POJ3270 Cow Sorting ——置换群
  2. UHF RFID编码之TPP编码
  3. mysql_08_子查询
  4. 【Java 线程的深入研究3】最简单实例说明wait、notify、notifyAll的使用方法
  5. 必须熟悉的vim快捷键操作
  6. VS2013上利用InstallShield2013LimitedEdition/C#生成安装包
  7. PHP自动加载__autoload的工作机制
  8. 黑马程序员 oc对象的方法成员变量
  9. 软件架构设计 温昱著 - 读书笔记
  10. C#中的String和string有什么区别?还有ref关键字怎么用?