一、安装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数据的更多相关文章

  1. python使用xlrd读取excel数据时,整数变小数的解决办法

    python使用xlrd读取excel数据时,整数变小数: 解决方法: 1.有个比较简单的就是在数字和日期的单元格内容前加上一个英文的逗号即可.如果数据比较多,也可以批量加英文逗号的前缀(网上都有方法 ...

  2. Python用xlrd读取Excel数据到list中再用xlwt把数据写入到新的Excel中

    一.先用xlrd读取Excel数据到list列表中(存入列表中的数据如下图所示) import xlrd as xd #导入需要的包 import xlwt data =xd.open_workboo ...

  3. 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

    Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...

  4. Selenium2+python自动化之读取Excel数据(xlrd)

    前言 当登录的账号有多个的时候,我们一般用excel存放测试数据,本节课介绍,python读取excel方法,并保存为字典格式. 一.环境准备 1.先安装xlrd模块,打开cmd,输入pip inst ...

  5. python应用_读取Excel数据列表输出【一】

    python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 1.准备Excel数据如下: 2.下面主要是对Excel数据读取后以双列表(每一行是一个用例为一个列表,再一个个案例组 ...

  6. python利用xlrd读取excel文件始终报错原因

    1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...

  7. Python 写入和读取Excel数据

    写数据到csv文件里 一. 在本地盘符里新建一个Excel文档,然后另存为csv文件 二.打开PyCharm,新建一个Python File  ,写入以下代码 import randomimport ...

  8. python应用_读取Excel数据【二】_二次封装之函数式封装

    目的:想要把对Excel文件读取做成一个通用的函数式封装,便于后续简单调用,隔离复杂性. 未二次封装前原代码: #coding=gbkimport osimport xlrdcurrent_path= ...

  9. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

随机推荐

  1. 如何在YouTube上下载视频

    1,首先要有科学上网的工具 2,详细说明:https://en.savefrom.net/1-how-to-download-youtube-video/

  2. CNN基础三:预训练模型的微调

    上一节中,我们利用了预训练的VGG网络卷积基,来简单的提取了图像的特征,并用这些特征作为输入,训练了一个小分类器. 这种方法好处在于简单粗暴,特征提取部分的卷积基不需要训练.但缺点在于,一是别人的模型 ...

  3. C++ 浅析移位运算

    按位左移(<<): 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零 按位右移(>>): 按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍 ...

  4. 西电源ubuntu12

    deb http://linux.xidian.edu.cn/mirrors/ubuntu/ precise main restricted universe multiverse #deb-src ...

  5. 1.MVC的初步了解

    1.MVC简单介绍 1)原理(如图)如果想更加深入了解原理,可以访问此地址(https://www.cnblogs.com/uicodeintoworld/p/8950877.html) 理解:客户端 ...

  6. datagrid+toolbar 不分页 显示

    1 新建DataGrid.js文件 /*** * * *el: table id * ***/ function showDataGrid(el) { $(el).datagrid({ title: ...

  7. hdu 5860 Death Sequence(递推+脑洞)

    Problem Description You may heard of the Joseph Problem, the story comes from a Jewish historian liv ...

  8. springboot bootstrap.yml 和 application.yml

    bootstrap.yml可以理解成系统级别的一些参数配置,这些参数一般是不会变动的 application.yml 可以用来定义应用级别的,如果搭配spring-cloud-config使用 app ...

  9. spss乱码问题解决

    spss乱码问题解决 方法1:网友kuangsir6提供 选择字体为:DFKai-SB 格式(我并没有找到这个格式) 方法是 SPSS(PASW)---Edit---Options---Viewer- ...

  10. CSS实现进度条

    进度条经常运用于网页,即使我们意识到不是所有的东西都将瞬间被加载完成,这些进度条用于提醒使用者关于网页上具体的任务进程,譬如上传,下载,加载应用程序等. 以前如果想要创建一个进度条的动画效果,没有使用 ...