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 = ws              # 获取sheet⼯作表的⾏数
ncols = ls              # 获取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 = w_values(0)
print(row_data)
(7)获取第1列(索引为0)的值(是⼀个列表)
workbook = xlrd.open_workbook(FileName)
sheet1 = workbook.sheet_by_index(1)
col_data = l_values(0)
print(col_data)
(8)使⽤⾏列索引(从0开始)获取单元格的数据
workbook = xlrd.open_workbook(FileName)
sheet1 = workbook.sheet_by_index(1)
cell_A1 = ll(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 = ws
idx = w_values(0)
# 最终的数据列表
data = []
# 从第1⾏开始遍历循环所有⾏,获取每⾏的数据
for i in range(1,nrows):
row_data = w_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')
输出:
[
{
python怎么读入excel"车牌号": "粤A123456",
"设备号": 136********.0,
"sim卡号": 136********.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"}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。