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库,这里只记录使用 ...
随机推荐
- 安装双系统Windows+Centos安装完成之后提示双系统选项菜单!
原因:在windows下安装centos系统完成之后重启无法显示windows系统菜单选项 1.安装Windows系统 2.安装Centos系统 3.在Centos系统中安装ntfs-3g yum i ...
- Vue中app实例对象的几种写法
1.传统方法(练习 小DEMO中用的这种) <script type="text/ecmascript"> var app=new Vue({ el:"#ap ...
- C++11新特性之 Move semantics(移动语义)
https://blog.csdn.net/wangshubo1989/article/details/49748703 这篇讲到了vector的push_back的两种重载版本,左值版本和右值版本.
- MariaDB 更新查询
UPDATE 命令通过更改值来修改现有字段. 它使用SET子句指定要修改的列,并指定分配的新值. 这些值可以是字段的表达式或默认值. 设置默认值需要使用DEFAULT关键字. 该命令还可以使用WHER ...
- POJ 2387 Til the Cows Come Home (dijkstra模板题)
Description Bessie is out in the field and wants to get back to the barn to get as much sleep as pos ...
- Github上的SlidingMenu菜单的使用方法
GitHub上的SlidingMenu的配置方法 1. 首先明确SlidingMenu是什么? 2. 如何使用SlidingMenu框架呢? GitHub上的SlidingMenu的配置方法 1. 首 ...
- mysql全家桶(二)数据操作
一.数据操作1.增#新增insert into 表名(字段列表) values(值列表);INSERT INTO table_name ( field1, field2,...fieldN ) VAL ...
- windows10下Mysql5.7安装指南
背景 值此国庆70周年之际,为了发扬广大国内软件开发行业,我决定使用MySQL5.7. 呸!实际情况是公司的项目用的是Mysql5.7,但是正式服务器在国外,而且测试服务器也是在国外,关键问题是我这个 ...
- 74、Salesforce的String的format方法
String placehodler = 'Hello {0} , {1} is cool!'; List<String> fillers = new String[]{'Jason',' ...
- python主要探索函数
在数据分析中,Python的主要探索函数 Python中主要用于书探索的是pandas(数据分析)和matplotlib(数据可视化).其中pandas提供了大量的数据探索的工具与数据相关的函数,这些 ...