python读取excel数据为json格式(兼容xls\xlsx)
做自动化时需要从excel读取数据;
本文实现将excel文件数据读取为json格式,方便自动化调用
读取xls文件
使用xlrd读取xls文件代码:
import xlrd
def read_xls(file):
# 实例化excel
book = xlrd.open_workbook(file)
# 下标读取sheet
sheet = book.sheet_by_index(1)
# sheet name读取sheet
# sheet = book.sheet_by_name('Sheet1')
# 获取总行数
nrows = sheet.nrows
# 循环读取每行数据
datas = []
for i in range(1, nrows):
# print(sheet.row_values(i))
# 数据组装dic+t格式
data = dict(zip(sheet.row_values(0), sheet.row_values(i)))
datas.append(data)
return datas
读取xlsx文件
因为xlrd只能读取xls,如遇到xlsx文件,需要使用openpyxl库读取,代码如下:
from openpyxl import load_workbook
def read_xlsx(file):
# 加载文件
book = load_workbook(file)
# sheet name获取sheet:
sheet = book['sheet1']
# 获取总行数
rows = sheet.max_row
# 获取总列数
# cols = sheet.max_column
# print(rows)
# 获取表头
head = [row for row in sheet.iter_rows(min_row=1, max_row=1, values_only=True)][0]
# 数据组装
datas = []
for row in sheet.iter_rows(min_row=2, max_row=rows + 1, values_only=True):
data = dict(zip(head, row))
datas.append(data)
# print(datas)
return datas
判断文件类型方法
最后根据文件后缀自动选择对应方法读取
def read_excel(file: str):
if file.endswith('xls'):
data = read_xls(file)
elif file.endswith('xlsx'):
data = read_xlsx(file)
else:
data = ['not support file']
return data
最终代码
import xlrd
from openpyxl import load_workbook
def read_xls(file):
# 实例化excel
book = xlrd.open_workbook(file)
# 下标读取sheet
sheet = book.sheet_by_index(1)
# sheet name读取sheet
# sheet = book.sheet_by_name('Sheet1')
# 获取总行数
nrows = sheet.nrows
# 循环读取每行数据
datas = []
for i in range(1, nrows):
# print(sheet.row_values(i))
# 数据组装dic+t格式
data = dict(zip(sheet.row_values(0), sheet.row_values(i)))
datas.append(data)
return datas
def read_xlsx(file):
# 加载文件
book = load_workbook(file)
# sheet name获取sheet:
sheet = book['sheet1']
# 获取总行数
rows = sheet.max_row
# 获取总列数
# cols = sheet.max_column
# print(rows)
# 获取表头
head = [row for row in sheet.iter_rows(min_row=1, max_row=1, values_only=True)][0]
# 数据组装
datas = []
for row in sheet.iter_rows(min_row=2, max_row=rows + 1, values_only=True):
data = dict(zip(head, row))
datas.append(data)
# print(datas)
return datas
# 获取单元格值:
# Data = sheet.cell(row=row, column=col).value # 获取表格内容,是从第一行第一列是从1开始的,注意不要丢掉 .value
def read_excel(file: str):
if file.endswith('xls'):
data = read_xls(file)
elif file.endswith('xlsx'):
data = read_xlsx(file)
else:
data = ['not support file']
return data
End
林末 https://www.cnblogs.com/linmo
python读取excel数据为json格式(兼容xls\xlsx)的更多相关文章
- python 读取excel数据并将测试结果填入Excel
python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...
- 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据
演示效果参考如下:XML转JSON 另一个搭配SQL实现:http://sheetjs.com/sexql/index.html 详细介绍: 1.首先需要导入js <script src=&qu ...
- Python读取Excel数据并根据列名取值
一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...
- Python读取excel 数据
1.安装xlrd 2.官网 通过官网来查看如何使用python读取Excel,python excel官网: http://www.python-excel.org/ 实例: (1)Excel内容 把 ...
- python读取excel数据并以第一行标题加内容组成字典格式返回
excel结构如图所示: 代码: import xlrd ''' 通用获取excel数据 @:param path excel文件路径 @:param sheet_name excel文件里面shee ...
- Python mysql表数据和json格式的相互转换
功能: 1.Python 脚本将mysql表数据转换成json格式 2.Python 脚本将json数据转成SQL插入数据库 表数据: SQL查询:SELECT id,NAME,LOCAL,mobil ...
- Python读取Excel数据
今天一同学给我发来一个Excel文件,让我帮他找一些信息,打开一开 8000多条数据.自己手工处理是不可能完成的的啦.作为一名程序员,当然要用程序来处理.处理生活中的问题当然是Python最为方便啦. ...
- Java POI 读取Excel数据转换为XML格式
1.首先要下载poi相关的包:http://poi.apache.org/ ,以下是所需的jar包 2.贴上详细的代码 public class ExcelToXml { /** * 将excel的 ...
- python读取excel数据,并可视化展现
#-*- coding: utf-8 -*- import pandas as pda import matplotlib.pyplot as pyl import matplotlib.font_m ...
随机推荐
- wxWidgets源码分析(3) - 消息映射表
目录 消息映射表 静态消息映射表 静态消息映射表处理过程 动态消息映射表 动态消息映射表处理过程 消息映射表 消息是GUI程序的核心,所有的操作行为均通过消息传递. 静态消息映射表 使用静态Event ...
- 后端程序员之路 4、一种monitor的做法
record_t包含_sum._count._time_stamp._max._min最基础的一条记录,可以用来记录最大值.最小值.计数.总和metric_t含有RECORD_NUM(6)份recor ...
- 02.从0实现一个JVM语言之词法分析器-Lexer-03月02日更新
从0实现JVM语言之词法分析器-Lexer 本次有较大幅度更新, 老读者如果对前面的一些bug, 错误有疑问可以复盘或者留言. 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个s ...
- 剑指 Offer 38. 字符串的排列 + 无重复元素的全排列
剑指 Offer 38. 字符串的排列 Offer_38 题目描述 解题思路 可以使用递归实现全排列,每次都确定一个数的位置,当所有位置的数都确定后即表示一个排列. 但是考虑到本题需要排除重复的排列, ...
- a标签不能继承父级的颜色
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java入门和环境配置ideaJ安装
Java入门及环境搭建 目录 Java入门及环境搭建 什么是Java Java Java的发展 Java的特性和优势 Java三大版本 JDK JRE JVM JAVA开发环境搭建 安装JDK 卸载J ...
- 一. MySQL基础语法
1. 案例库表 2. DQL语言(数据查询) 2.1 基础查询 -- 进入指定的库 USE myemployees; DESC employees; -- 使用SELECT查询字段 # 1.查询表中的 ...
- 从代理模式 到 SpringAOP
前言 Spring AOP 就是通过代理模式来实现切面编程的.代理模式用来为其他对象提供一种代理,以控制对这个对象的访问. 代理对象在客户端和目标对象之间起到中介的作用.通过控制对这个对象的访问,可以 ...
- WebSocket与即时通讯
HTTP 协议有一个缺陷:通信只能由客户端发起!HTTP 协议做不到服务器主动向客户端推送信息.这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦.我们只能使用"轮 ...
- JavaCV 采集摄像头及桌面视频数据
javacv 封装了javacpp-presets库很多native API,简化了开发,对java程序员来说比较友好. 之前使用JavaCV库都是使用ffmpeg native API开发,这种方式 ...