python读取excel数据转为json格式

做自动化时需要从excel读取数据; 本文实现将excel文件数据读取为json格式,方便自动化调用

读取xls文件

使用xlrd读取xls文件代码:

1import xlrd 2 3 4def read_xls(file): 5 # 实例化excel 6 book = xlrd.open_workbook(file) 7 # 下标读取sheet 8 sheet = book.sheet_by_index(1) 9 # sheet name读取sheet 10 # sheet = book.sheet_by_name('Sheet1') 11 # 获取总行数 12 nrows = sheet.nrows 13 # 循环读取每行数据 14 datas = [] 15 for i in range(1, nrows): 16 # print(sheet.row_values(i)) 17 # 数据组装dic+t格式 18 data = dict(zip(sheet.row_values(0), sheet.row_values(i))) 19 datas.append(data) 20 return datas

读取xlsx文件

因为xlrd只能读取xls,如遇到xlsx文件,需要使用openpyxl库读取,代码如下:

1from openpyxl import load_workbook 2def read_xlsx(file): 3 # 加载文件 4 book = load_workbook(file) 5 # sheet name获取sheet: 6 sheet = book['sheet1'] 7 # 获取总行数 8 rows = sheet.max_row 9 # 获取总列数 10 # cols = sheet.max_column 11 # print(rows) 12 # 获取表头 13 head = [row for row in sheet.iter_rows(min_row=1, max_row=1, values_only=True)][0] 14 # 数据组装 15 datas = [] 16 for row in sheet.iter_rows(min_row=2, max_row=rows + 1, values_only=True): 17 data = dict(zip(head, row)) 18 datas.append(data) 19 # print(datas) 20 return datas

判断文件类型方法

最后根据文件后缀自动选择对应方法读取

1def read_excel(file: str): 2 if file.endswith('xls'): 3 data = read_xls(file) 4 elif file.endswith('xlsx'): 5 data = read_xlsx(file) 6 else: 7 data = ['not support file'] 8 return data

最终代码

1import xlrd 2from openpyxl import load_workbook 3 4 5def read_xls(file): 6 # 实例化excel 7 book = xlrd.open_workbook(file) 8 # 下标读取sheet 9 sheet = book.sheet_by_index(1) 10 # sheet name读取sheet 11 # sheet = book.sheet_by_name('Sheet1') 12 # 获取总行数 13 nrows = sheet.nrows 14 # 循环读取每行数据 15 datas = [] 16 for i in range(1, nrows): 17 # print(sheet.row_values(i)) 18 # 数据组装dic+t格式 19 data = dict(zip(sheet.row_values(0), sheet.row_values(i))) 20 datas.append(data) 21 return datas 22 23 24def read_xlsx(file): 25 # 加载文件 26 book = load_workbook(file) 27 # sheet name获取sheet: 28 sheet = book['sheet1'] 29 # 获取总行数 30 rows = sheet.max_row 31 # 获取总列数 32 # cols = sheet.max_column 33 # print(rows) 34 # 获取表头 35 head = [row for row in sheet.iter_rows(min_row=1, max_row=1, values_only=True)][0] 36 # 数据组装 37 datas = [] 38 for row in sheet.iter_rows(min_row=2, max_row=rows + 1, values_only=True): 39 data = dict(zip(head, row)) 40 datas.append(data) 41 # print(datas) 42 return datas 43 # 获取单元格值: 44 # Data = sheet.cell(row=row, column=col).value # 获取表格内容,是从第一行第一列是从1开始的,注意不要丢掉 .value 45 46 47def read_excel(file: str): 48 if file.endswith('xls'): 49 data = read_xls(file) 50 elif file.endswith('xlsx'): 51 data = read_xlsx(file) 52 else: 53 data = ['not support file'] 54 return data

End 林末 https://www.helloworld.net/linmo

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Python 操作excel

python操作excel使用xlrd、xlwt和xlutils模块。xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的一、python 读取excelimportxlrdbookxlrd.open_workbook('all_stu.xls')打开一个excelsheetb

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''

Python操作Excel

前言:Python操作Excel使用openpyxl模块,python中有好几个与excel相关操作的模块。xlrd库:从excel中读取数据,支持xls、xlsx格式。xlwt库:对excel进行修改操作,不支持对xlsx格式的修改。xlutils库:在xlrd和xlwd中对一个已存在的文件进行修改。openpyxl库: