做自动化时需要从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)的更多相关文章

  1. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

  2. 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据

    演示效果参考如下:XML转JSON 另一个搭配SQL实现:http://sheetjs.com/sexql/index.html 详细介绍: 1.首先需要导入js <script src=&qu ...

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

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

  4. Python读取excel 数据

    1.安装xlrd 2.官网 通过官网来查看如何使用python读取Excel,python excel官网: http://www.python-excel.org/ 实例: (1)Excel内容 把 ...

  5. python读取excel数据并以第一行标题加内容组成字典格式返回

    excel结构如图所示: 代码: import xlrd ''' 通用获取excel数据 @:param path excel文件路径 @:param sheet_name excel文件里面shee ...

  6. Python mysql表数据和json格式的相互转换

    功能: 1.Python 脚本将mysql表数据转换成json格式 2.Python 脚本将json数据转成SQL插入数据库 表数据: SQL查询:SELECT id,NAME,LOCAL,mobil ...

  7. Python读取Excel数据

    今天一同学给我发来一个Excel文件,让我帮他找一些信息,打开一开 8000多条数据.自己手工处理是不可能完成的的啦.作为一名程序员,当然要用程序来处理.处理生活中的问题当然是Python最为方便啦. ...

  8. Java POI 读取Excel数据转换为XML格式

    1.首先要下载poi相关的包:http://poi.apache.org/  ,以下是所需的jar包 2.贴上详细的代码 public class ExcelToXml { /** * 将excel的 ...

  9. python读取excel数据,并可视化展现

    #-*- coding: utf-8 -*- import pandas as pda import matplotlib.pyplot as pyl import matplotlib.font_m ...

随机推荐

  1. Windows开发常用快捷键

    毕业后一直在从事Windows开发工作,掌握些常用的Windows快捷键可以大大的提升工作效率,同时还能秀一波操作.本文记录在工作中常用的Windows快捷键,以及VS常用快捷键.掌握了这些键盘操作, ...

  2. 授权认证登录之 Cookie、Session、Token、JWT 详解

    一.先了解几个基础概念 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份. 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就 ...

  3. python爬虫模拟登录验证码解决方案

    [前言]几天研究验证码解决方案有三种吧.第一.手工输入,即保存图片后然后我们手工输入:第二.使用cookie,必须输入密码一次,获取cookie:第三.图像处理+深度学习方案,研究生也做相关课题,就用 ...

  4. Go - 代码生成工具

    分享两个常用的代码生成工具: gormgen handlergen gormgen 基于 MySQL 数据表结构进行生成 3 个文件: 生成表的 struct 结构体 生成表的 Markdown 文档 ...

  5. 肝了很久,冰河整理出这份4万字的SpringCloud与SpringCloudAlibaba学习笔记!!

    写在前面 不少小伙伴让我整理下有关SpringCloud和SpringCloudAlibaba的知识点,经过3天的收集和整理,冰河整理出这份4万字的SpringCloud与SpringCloudAli ...

  6. windows本地连接虚拟机上的ubuntu的redis,以及无法连接解决方法(redisDesktopManager Jedis详细步骤)

    一.环境 1.ubuntu20.04 . redis 5.0.7 在ubuntu上下载redis,执行命令 sudo apt install redis 2.redisDesktopManager下载 ...

  7. 【Azure Redis 缓存】Azure Redis 功能性讨论二

    继承上一次讨论了Azure Redis的可用性,可靠性,稳定性,安全性,监控方面的九大功能点.详情可回顾文章:[Azure Redis 缓存]Azure Redis功能性讨论 这次我们继续讨论Azur ...

  8. JDK的下载、安装与配置

    一.JDK的下载 1.JDK下载地址:https://www.oracle.com/cn/java/technologies/javase-downloads.html 2.登录Oralce官网:ht ...

  9. HDOJ-2087(KMP算法)

    剪花布条 HDOJ-2087 本题和hdoj-1686相似,唯一不同的是这里的子串一定要是单独的.所以在确定有多少个子串时不能用前面的方法.而是在循环时,只要找到一个子串,i就不是++,而是+=子串的 ...

  10. WPF 基础 - 属性

    1. CLR 属性 .Net Framework 中的属性又称为 CLR 属性,是对 private 字段的安全访问包装. 使用 ILSpy 反编译器可以看到 C# 中代码的属性的编译结果是 set. ...