python使用xlrd读取excel数据
一、安装xlrd
库的安装我这里就不说了..
二、读取 excel
前提条件:excel文件名称为 excel_data.xlsx
1、打开excelw 文件
- workbook = xlrd.open_workbook(filename) # filename 为excel文件路径 + 文件名称
2、获取 excel 的sheet工作表的内容
(1)比如:获取第一个sheet工作表的名称,如图
贴上代码:
- get_sheet_name = workbook.sheet_names()[0] # [0]表示索引,获取第一个sheet工作表名称
(2)比如:获取 excel 所有的sheet工作表的名称
- sheetname = workbook.sheet_names()
(3)根据工作表的名称获取sheet工作表页的对象
- workbook = xlrd.open_workbook(FileName)
- get_sheet_name = workbook.sheet_names()[0]
- sheet2 = workbook.sheet_by_name(get_sheet_name)
- print(sheet2)
输出:
<xlrd.sheet.Sheet object at 0x00000181B7CFCA90>
(4)根据工作表的索引获取sheet工作表页的对象
- workbook = xlrd.open_workbook(FileName)
- sheet1 = workbook.sheet_by_index(0)
- print(sheet1)
输出:
<xlrd.sheet.Sheet object at 0x000001C661A8C9B0>
(5)获取sheet工作表的行数和列数
- workbook = xlrd.open_workbook(FileName) # 打开文件
- sheet1 = workbook.sheet_by_index(1) # 根据索引获取第一个工作表的内容(通过更改索引数字1,可以获取第几个工作表的内容)
- nrows = sheet1.nrows # 获取sheet工作表的行数
- ncols = sheet1.ncols # 获取sheet工作表的列数
- print(nrows)
- print(ncols)
输出:
11和7;说明有11行和7列
(6)获取第1行(索引为0)的内容(是一个列表)
- workbook = xlrd.open_workbook(FileName)
- sheet1 = workbook.sheet_by_index(1)
- row_data = sheet1.row_values(0)
- print(row_data)
(7)获取第1列(索引为0)的值(是一个列表)
- workbook = xlrd.open_workbook(FileName)
- sheet1 = workbook.sheet_by_index(1)
- col_data = sheet1.col_values(0)
- print(col_data)
(8)使用行列索引(从0开始)获取单元格的数据
- workbook = xlrd.open_workbook(FileName)
- sheet1 = workbook.sheet_by_index(1)
- cell_A1 = sheet1.cell(0, 0)
- print(cell_A1)
(9)将Excel文件中的数据转换成json数组
- import xlrd
- import json
- def readexcel(FileName):
- workbook = xlrd.open_workbook(FileName)
- sheet1 = workbook.sheet_by_index(1)
- nrows = sheet1.nrows
- idx = sheet1.row_values(0)
- # 最终的数据列表
- data = []
- # 从第1行开始遍历循环所有行,获取每行的数据
- for i in range(1,nrows):
- row_data = sheet1.row_values(i)
- # 组建每一行数据的字典
- row_data_dict = {}
- # 遍历行数据的每一项,赋值进行数据字典
- for j in range(len(row_data)):
- item = row_data[j]
- row_data_dict[idx[j]] = item
- # 将年份字段转成整形
- #row_data_dict['year'] = int(row_data_dict['year'])
- # 将行数据字典加入到data列表中
- data.append(row_data_dict)
- result = json.dumps(data,indent = 4,ensure_ascii=False)
- print(result)
- if __name__ == '__main__':
- readexcel(r'D:/CodeBase/ReadData/ReadExcel/excel_data.xlsx')
输出:
- [
- {
- "车牌号": "粤A123456",
- "设备号": 13645454412.0,
- "sim卡号": 13645454412.0,
- "设备类型": "A5C-8W",
- "所属车组": "测试",
- "车架号": 123.0,
- "服务密码": 123.0
- }
- ]
注意:
json.dumps 进行序列化时,默认使用ascii编码, print json.dumps(data,indent = 4)输出unicode编码的结果,比如: {"\u8f66\u724c\u53f7": "\u7ca4A123456"}
json.dumps(data,indent = 4,ensure_ascii=False),不使用ascii编码,输出结果为:{"车牌号": "粤A123456"}
但是有时也碰到 json.dumps(data,indent = 4,ensure_ascii=False)之后依旧是乱码的格式,可采取下面方式处理:
- import json
- dic = {"车牌号": "粤A123456"}print json.dumps(dic,ensure_ascii=False).decode("utf-8").encode("gb2312") #{"车牌号": "粤A123456"}
https://blog.csdn.net/dnxbjyj/article/details/71774176
python使用xlrd读取excel数据的更多相关文章
- python使用xlrd读取excel数据时,整数变小数的解决办法
python使用xlrd读取excel数据时,整数变小数: 解决方法: 1.有个比较简单的就是在数字和日期的单元格内容前加上一个英文的逗号即可.如果数据比较多,也可以批量加英文逗号的前缀(网上都有方法 ...
- Python用xlrd读取Excel数据到list中再用xlwt把数据写入到新的Excel中
一.先用xlrd读取Excel数据到list列表中(存入列表中的数据如下图所示) import xlrd as xd #导入需要的包 import xlwt data =xd.open_workboo ...
- 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...
- Selenium2+python自动化之读取Excel数据(xlrd)
前言 当登录的账号有多个的时候,我们一般用excel存放测试数据,本节课介绍,python读取excel方法,并保存为字典格式. 一.环境准备 1.先安装xlrd模块,打开cmd,输入pip inst ...
- python应用_读取Excel数据列表输出【一】
python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 1.准备Excel数据如下: 2.下面主要是对Excel数据读取后以双列表(每一行是一个用例为一个列表,再一个个案例组 ...
- python利用xlrd读取excel文件始终报错原因
1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...
- Python 写入和读取Excel数据
写数据到csv文件里 一. 在本地盘符里新建一个Excel文档,然后另存为csv文件 二.打开PyCharm,新建一个Python File ,写入以下代码 import randomimport ...
- python应用_读取Excel数据【二】_二次封装之函数式封装
目的:想要把对Excel文件读取做成一个通用的函数式封装,便于后续简单调用,隔离复杂性. 未二次封装前原代码: #coding=gbkimport osimport xlrdcurrent_path= ...
- Python读取Excel数据并根据列名取值
一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...
随机推荐
- Mysql 事务相关
MySQL介绍 什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它 ...
- 判断Xen虚拟机随想
kvm xen虚拟化技术 剑桥大学开发,vmware visualbox windows下检测是否安装,注册表读取安装路径 linux下检测是否安装 rpm -qa 列出 判断软件包是否安装,rpm ...
- 第06章 AOP XML
第06章 以XML方式配置切面 1.概述 除了使用AspectJ注解声明切面,Spring也支持在bean配置文件中声明切面.这种声明是通过aop名称空间中的XML元素完成的. 正常情况下,基于注解的 ...
- POJ A Plug for UNIX (最大流 建图)
Description You are in charge of setting up the press room for the inaugural meeting of the United N ...
- Ubuntu下Arm-Linux-GCC交叉编译环境的搭建
1.下载arm-linux-gcc-3.4.1.tar.bz2到临时的目录下. 2.解压 arm-linux-gcc-3.4.1.tar.bz2 #tar -jxvf arm-linux-gcc-3. ...
- Service系统服务(二):补充应用技巧、软连接与硬连接、man手册、zip备份、vim效率操作、自定义yum软件仓库、发布及测试yum仓库、编译安装软件包
一.补充应用技巧 目标: 本例要求掌握在运维中比较常用的一些扩展命令技巧的使用,完成下列小技巧操作: 1> 采用数值形式将目录/root的权限调整为 rwx------ 2> 将记录的 ...
- layui导出表格全部数据
layui自带的导出表格,只能导出当前页面,如果当前页包含全部数据,那不就是导出全部数据了吗,所以我给导出事件单独定义了一个请求,当触发这个请求时,在后台查询数据时不要按接收的page 和 limit ...
- RealsenseD415/D435深度相机常用资料汇总
1.Realsense SDK 2.0 Ubuntu 16.04 安装指导网址https://github.com/IntelRealSense/librealsense/blob/master/do ...
- JavaScript实现注册时检查邮箱,名称,密码等是否符合规则
大概实现了,用户名是否存在,邮箱是否已注册,密码是否符合复杂度. //对用户名校验是否存在function checkname(){ //alert("checkname"); v ...
- Django基础篇(一)
Python的Web框架有Django.Tornado.Flask等多种,Django相较其他web框架的优势有: 大而全.框架本身集成了ORM框架.模板绑定.缓存.Session等诸多功能. 1.安 ...